Wiem, że mikokontrolery oparte na 8051 powoli wychodzą z mody, ale obecnie muszę napisać nowy wsad do istniejącego urządzenia. Nie mam zamiaru uczyć się assemblera tej rodziny ani bawić się w BASCOM-ie, więc skorzystam z C. W czasach świetności tych MCU powszechnie korzystano z kompilatora Keil, ja jednak postawię na SDCC - z tego co widzę, podobieństwa są dość spore, przynajmniej na pierwszy rzut oka. Proste projekty przykładowe się kompilują.
Mam jednak kilka pytań:
1) Widzę, że możliwy jest dostęp do pinów GPIO za pomocą konstrukcji w rodzaju Px_y, gdzie x oznacza numer portu, a y numer pinu w porcie. Można dzięki temu przypisywać wartość bezpośrednio do pinu, (np. P0_1=1). Czym jest taka konstrukcja? Można zdefiniować jakąś zmienną wskaźnikową, która umożliwi mi dostęp do tak zdefiniowanego pinu? Chciałbym przeportować pewną prostą bibliotekę do obsługi przycisków. Dobrze by było, gdybym mógł przekazać informację o pinie właśnie w ten sposób, jako argument funkcji, a potem trzymać ją w strukturze opisującej przycisk. 2) Czy możliwe jest korzystanie z portów w sposób taki, jak w AVR-ach? To znaczy coś w rodzaju P0 |= (1<<2). 3) Dobrze rozumiem, że te mikrokontrolery nie posiadają żadnych rejestrów konfiguracyjnych, jeśli chodzi o kierunek pinu i działają podobnie do prostych ekspanderów I2C?