• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Funkcja zmiany stanu wyjścia cyfrowego
#1
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);
}
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości