Gast
#338132
hallo,
ich versuche seit tagen vergeblich, den pin PE3 als ausgang zu
benutzen. die sache haengt daran, dass ich timer 3 im CTC-Mode in
betrieb habe, wenn ich timer 3 nicht nutze, funktioniert die sache mit
dem digitalen ausgang. mit ausgang PE2 laeuft die sache problemlos, nur
PE 3 will nicht. PE3 wird immer vom timer irgendwie ueberschrieben;
nachdem der timer loslaeuft ist PE3 immer wieder auf 0. die sache ziegt
sich so auch im debugger ohne hardware (winavr-gcc).
hier mal mein code:
in main():
PORTE=0x00;
DDRE=0x0E;
danach in unterfunktion:
TCCR3A = 0x00; // keine PWM Mode 12 - TOP: IRC
TCCR3B = 0x01; // kein InputCompare Mode 12 Vorteiler: 1024
TCCR3C = 0x00; // kein Force Output Compare
TCNT3 = 0x0000;
OCR3A = 0x0300; // Wert egal, da kein PWM-Betrieb
OCR3B = 0x0000; // Wert egal, da kein PWM-Betrieb
OCR3C = 0x0000; // Wert egal, da kein PWM-Betrieb
// ETIMSK |= (1<<TICIE3); // IC-Interrupt ein
ETIMSK &= ~(1<<OCIE3A); // alle mgl. interrupts offshiften
ETIMSK &= ~(1<<OCIE3B); // alle mgl. interrupts offshiften
ETIMSK &= ~(1<<TOIE3); // alle mgl. interrupts offshiften
ETIMSK &= ~(1<<OCIE3C); // alle mgl. interrupts offshiften
ETIMSK &= ~(1<<OCIE1C); // alle mgl. interrupts offshiften
ETIMSK &= ~(1<<TICIE3); // alle mgl. interrupts offshiften
ICR3 = 0x0FFD; // Wert, bei dem der Timer zurueckgesetzt wird -
// 0.512s
TCNT3 = 0x0030; // Zaehlregister Nullsetzen
ich benutze parallel dazu noch timer 1 und 2 und moechte bei allen
einen interrupt ausloesen (CTC-Mode). kann mir einer sagen, warum hier
mein ausgang immer ueberschrieben wird?
danke
esco