Und was funktioniert nicht, bekommst du eine Fehlermeldung oder funktioniert der Code nicht.
Ich bekomme es nicht hin, mein Code zu compalieren.
Könntet ihr bitte mir beim finden der Fehler Helfen?
Am PB3 ist ein Led angeschlossen das beim betätigen der Taste am PB5 leuchten soll.
Code:/************************************************************************************************ * Project: USB AVR-Lab * Author: Christian Ulrich * Contact: christian at ullihome dot de * * Creation Date: 2007-09-24 * Copyright: (c) 2007 by Christian Ulrich * License: GPLv2 * * Changes: ***********************************************************************************************/ #include "avr/io.h" #include "avrlab.h" #include "stdint.h" int main(void) { avrlab_init(); //your code goes here DDRB &= ~(1<<PB5) ; DDRB |= (1<< PB3); PORTB |= (1<<PB5) ; while (1) { if ( PINB & (1<<PINB5) ) PortB |= (1<<PB3); else PortB &= ~(1<<PB3); //or here avrlab_poll(); //must be called at least every 40 ms //muss mindestens alle 40 ms aufgerufen werden } }
Und was funktioniert nicht, bekommst du eine Fehlermeldung oder funktioniert der Code nicht.
Das Code wurde jetzt compaliert. Mein Fehler war das ich PortB anstatt PORTB geschrieben hatte.
Meine neue Code schaut jetzt sp aus
Jetzt ist es so, das wenn ich es resete das Led auch aus ist.Code:#include "avr/io.h" #include "avrlab.h" int main(void) { avrlab_init(); //your code goes here PORTB &= ~(1<<PB3); PORTB |= (1<<PB5) ; DDRB &= ~(1<<PB5) ; DDRB |= (1<< PB3); while (1) { if (!( PINB & (1<<PINB5) )) PORTB = PINB ^ (1<<PB3); else PORTB &= ~(1<<PB3); //or here avrlab_poll(); //must be called at least every 40 ms //muss mindestens alle 40 ms aufgerufen werden } }
Aber wenn ich einmal die Taste betätigt habe geht die Led an, aber nicht mehr ganz aus. Wenn ich die Taste nochmal betätige leuchtet es heller.
if (!( PINB & (1<<PINB5) ))
PORTB |= (1<<PB3);
else
PORTB &= ~(1<<PB3);
So sollte es wohl eher funktionieren.
Hubert.G ich Danke dir.
Jeztz läft das Programm wie ich es haben wollte.
Lesezeichen