Arduino Polska Forum
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);
}
}