Ich bin an der Programmierung einer Kleinen schaltung. Verwendet wird ein Tiny2313, PIND3 und PIND4 sind taster eingänge, die bei Betätigung die Pins mit 5V bestromen. PIND5 Und PIND6 sind ausgänge mit LED's
Nun mein Vorhaben:
Ich würde gerne Mit taster PIND3 Die LED PIND5 Leuchten lassen. Außerdem, Nur wenn Taster PIND4 gedrückt ist und LED PIND5 Leuchtet sollte die LED PIND6 Leuchten. Ich weis, rein Logisch gesehen Könnte ich ja anstatt PIND5 abzufragen einfach PIND3 abfragen, da diese ja eh zusammenhängen, oder ich packe es in der ersten If- abfrage dazu. warum ich das aber nicht tun will tut hier jetzt nicht zur sache.
Hier mal mein Programmieransatz: Das Problem Bei dem versuch ist, dass die LED auf PIND6 nur ganz schwach leuchtet. Wo ligt der Fehler, bzw wie kann ich es berichtigen?
- Code: Alles auswählen
#include "avr/io.h"
#include "util/delay.h"
#include "stdlib.h"
int main (void) {
DDRD |= (1<<PD5); //LED1 als output
while(1) {
if (PIND & (1<<PD3)) //Wenn taster PD3 gedrückt wird....
{
PORTD |= (1<<PD5); //...Leuchtet Led PD5...
}
else
{
PORTD &= ~(1<<PD5); //... ansonsten bleibt LED PD5 aus
}
if ((PIND & (1<<PD4)) && (!(PIND & (1<<PD5)))) //Wenn Taster PD4 UND LED PD5 Geschalten sind...
{
PORTD |= (1<<PD6); //... leuchtet LED PD6 ebenfalls...
}
else
{
PORTD &= ~(1<<PD6); //...ansonsten nicht
}
}
return 0;
}
Gruß
Michael