AtMega128 16bit Timer ansteuern

OP #2873558
Lesenswert?
• ▲
▼
Moin liebe Gemeinde,

ich habe im Rahmen eines Projektes ein Autonomes Modellfahrzeug zu 
programmieren, einen Fehler in meinem Porgramm.
Ich bin noch am Anfang, also nicht wundern.

Das Problem ist bisher nur, dass keine ISR beim Timerüberlauf ausgelöst 
wird.
Es handelt sich um einen AtMega128 mit 16bit Timer.

----------------------------------------------------------------
void main(){
//---------------------------------------------------------------------- 
--------
//  Timer Initialisierung
//---------------------------------------------------------------------- 
--------
// SETUP für 16bit Timer [NEUES BOARD]
    TCCR1A = (1<<WGM11) | (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0) | 
(0<<COM1B1)| (0<<COM1B0)| (0<<COM1C1)| (0<<COM1C0) ;
  TCCR1B |= (0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12);

//Prescaler Setup [001=1 | 010=8 | 011=64 | 100=256 | 101=1024]
// 16000000MHZ/256=62500 Hz
// 65536/62500 =1.048576 seconds
  TCCR1B |= (1<<CS12) | (0<<CS11) | (0<<CS10);

  TCCR1B = (0<<FOC1A) | (0<<FOC1B) | (0<<FOC1C);

//Timer Interrupt Enable
  TIMSK |= ( 1 << TOIE0 );


TIMSK1 = 0x01; // enabled global and timer overflow interrupt;
TCCR1A = 0x00; // normal operation page 148 (mode0);

TCCR1B = 0x04; // start timer/ set clock

// 16bit counter start register
// start at 3036 -> overflow every second
// 16000000MHz/256=62500 Hz
// (65536-3036)/62500 =1.00 second
TCNT1 = 3036;


//Global Interrupt Enable
  sei();


while(1);
}
-------------------------------------------------------------------

Zurzeit besteht die ISR nur aus reseten des Timers.

Mein Ziel ist es, bei jeder ISR ein PWM-Signal mit dem Oszilloskopen 
auszugeben.

Ich bedanke mich jetzt schon einmal für eure Hilfe.
#2873636
Lesenswert?
• ▲
▼
Und TCCR1B nach dem Setzen des Vorteilers mit 0 zu überschreiben, löscht 
dann auch das gesetzte Vorteiler-Bit wieder.

Manchmal ist weniger einfach mehr!
Vor allen Dingen dann, wenn man vor lauter 0-en und 1-en und genutzten 
bzw. nicht genutzten Möglichkeiten den Überblick verliert, welche 
Konfiguration am Timer eigentlich hergestellt werden soll.
#2873639
Lesenswert?
• ▲
▼
Apropos AtMega128

Die M103 Fuse hast du gelöscht?
Die ist standardmässig gesetzt und bewirkt, dass du einen Mega103 vor 
dir hast und keinen Mega128. Ist das der Fall und compilierst du für 
einen Mega128, dann geht der erste Funktionsaufruf (kann natürlich auch 
ein ISR AUfruf sein), kräftig in die Hose.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.