Hallo! Eigentlich simples Programm, an PortB hängen die Buttons, an PortD die LEDs. Auf Tastendruck soll die LED angehen und eigentlich auch an bleiben. Tut sie aber leider nicht, es passiert genau garnichts. Wodran liegt das? Wenn ich das auskommentierte noch mit reinnehme funktioniert es, aber natürlich leuchtet dann die LED nur so lange wie ich den Taster drücke. Danke im Voraus Sebastian
Aah, falsche Datei angehängt, da war noch zu viel Müll vom probieren drin ;-). Hier nun die richtige.
Hallo, leider schreibst du nicht wie deine LED's und Button's an deinem AVR angeschlossen sind und aus dem Code sieht man es naemlich auch nicht. Falls deine LED's "LOW" aktiv an den AVR angeschlossen sind und dein Taster vom Portpin auf Masse geht fehlt da einiges im Code. Ein kleines Beispiel fuer LED's die LOW Aktiv sind und Taster die vom Portpin gegen GND gehen: [C] #include <avr/io.h> int main (void){ DDRD = 0xFF; // kompletter PORTD als Ausgang PORTD = 0xFF; // kompletter PORTD auf HIGH Pegel (LEDs off) DDRB=0x00; // kompletter PORTB als Eingang PORTB = 0xFF; // alle Pullup's auf PORTB aktiv for(;;){ if (bit_is_clear(PINB,0)) // Taste abfragen {PORTD &= ~( 1<<0);} // schaltet PORTDBit0 auf LOW } }
Nachtrag: Die Taste prellt und muss noch mit einem Delay oder am besten mit einem Timer entprellt werden.
Super, danke, hab das STK500 und das invertiert die ganzen Portausgänge ja, jetzt funzt es, dankefür deine Zeit :). Entprellen kommt noch, erstmal werde ich mich da langsam rantasten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.