Funkcja zmiany stanu wyjścia cyfrowego - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: "Projekt Arduino Polska" (https://forum.arduinopolska.pl/dzial-projekt-arduino-polska) +--- Dział: Zarys "Projektu Arduino Polska" (https://forum.arduinopolska.pl/dzial-zarys-projektu-arduino-polska) +--- Wątek: Funkcja zmiany stanu wyjścia cyfrowego (/watek-funkcja-zmiany-stanu-wyj%C5%9Bcia-cyfrowego) |
Funkcja zmiany stanu wyjścia cyfrowego - emias4 - 29-04-2020 Witam mam problem z napisaniem pewnej funkcji, Chciałbym stworzyć funkcję boolowską z 2 parametrami pin ( numer wejścia/wyjścia cyfrowego) oraz wskaźnik state, który przekazywałby informację o tym jaki stan wyjścia ma być ustawiony. Przed ustawieniem odpowiedniego rejestru PORT(B/D) funkcja sprawdzałaby czy dane wyprowadzenie jest ustawione jako wejście lub wyjście. Funkcja zwraca true jeżeli możliwa jest zmiana stanu wyjścia, inaczej false. Do portu B chciałbym podłączyć switch button, natomiast do portu D diodę LED. do tej pory tyle wykminiłem #include <avr/io.h> #define Led 4 bool state = true; uint8_t button; bool digitalToggle( uint8_t pin, uint8_t * state) { PORTD = (*state << 5); *state = !(*state); return *state; return *state; } void main(){ DDRB |= 0xF3; // praca jako wejście DDRD |= 0xFF; // praca jako wyjście while(1){ button = (PINB & (1 << PINB0)); // odczytanie stanu if (button == 0) digitalToggle(PORTD4,&state); } } |