heyhey
also nach reichlicher Recherche häng ich grad ein bisschen
hier erstmal mein quellcode
includes...
int main() {
leds_init();
nds3_init();
DDRD &= ~( (1<<DDD2) | (1<<DDD3) | (1<<DDD5) | (1<<DDD6) );
//* PD2, PD3, PD5 und PD6 als Eingaenge und Rest ursprünglich belassen*/
PORTD |= ( (1<<PD2) | (1<<PD3) | (1<<PD5) | (1<<PD6) );
//* Interne Pull-Up fuer beide einschalten -> Notwendig bei eingänge? */
while(1==1){
/* Fuehre Aktion aus, wenn PD6 gesetzt ist -> PD6 = Listener) ist */
if ( (PIND & (1<<PIND6)) ) {
/* Aktion */
if (PIND & ( ( 1 << PD2 ) | ( 1 << PD3 ) ) ){
//führt LEDS aus, wenn PD2 und PD3 auf logisch 1 ist...ist das richtig????
leds_set_status(LEDS_RED, 0);
delay(500);
leds_set_status(LEDS_GREEN, 0);
delay(500);
}
}
delay(10);
}
return 0;
}
Mein Ziel ist es, dass die LED nur leuchtet, wenn ein HIGH (5V) an den Ports (PD2,3,5,6) anliegt. Nur leuchtet bei mir leider immer von anfang an die LED.
Wo könnte der Fehler liegen?
Bei Programmstart liegt keine Spannung an den Ports...das mache ich erst manuell später.
Kann wer den Code optimieren?
Gruß ostmob