Atmega 128 - Timer 3

Gast #338132
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren