ATmega 328P Timer1 falsche Interrupts

Gast #4665752
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem mit einem ATMega328p, ich bin mit AVR Studio 4.19 
und debugWire über AVR Dragon auf dem Gerät.

Ich habe in dem Mega eine Soft PWM Programmiert, und das Problem, das 
die Flags OCF1B und OCF1A gesetzt werden, obwohl die werte in den 
Compare Registern unterschiedlich zu dem Timer wert sind. Ich habe einen 
Screenshot aus dem AVR Studio angehangen. OCF1A ist schon wieder 
gelöscht, da der Interrupt betreten wurden. OCF1B ist aber noch gesetzt. 
Laut Datenblat werden diese aber nur gesetzt, wenn:

> This flag is set int the timer clock cycle after the counter(TCNT1) value
>matches the Output Compare Register B(OCR1B).

ich kann mir keinen Reim darauf machen, warum das Passiert, von euch 
eine Idee?


Grüße Stefan
Angehängte Dateien:
Gast #4665854
Lesenswert?
• ▲
▼
Hallo Lothar,

danke für deine Antwort, ich habe mal geschaut, und habe das CLI im 
Disassambling bei eine anderen Timer und einer EEPROM routine gefunden. 
Den code für den Anderen Timer habe ich dann vom buid 
ausgeschlossen(wird nicht gebraucht). Danach hatte ich nur noch 3 cli im 
Dissasambling: Anfang von Main für Speicher auf dem Stack, die EEPROM 
Routine und in "exit"

Die Einstiegssprungtabelle sieht so aus:

       0:  0c 94 5d 02   jmp  0x4ba  ; 0x4ba <__ctors_end>
       4:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
       8:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
       c:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      10:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      14:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      18:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      1c:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      20:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      24:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      28:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      2c:  0c 94 8c 02   jmp  0x518  ; 0x518 <__vector_11>
      30:  0c 94 c5 02   jmp  0x58a  ; 0x58a <__vector_12>
      34:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      38:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      3c:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      40:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      44:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      48:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      4c:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      50:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      54:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      58:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      5c:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      60:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>
      64:  0c 94 8a 02   jmp  0x514  ; 0x514 <__bad_interrupt>

also nur noch die 2 Vektoren von Timer1. Leider besteht das Problem 
immer noch.


Gute idee mit dem Code, ich werde mal versuchen so viel wie möglich zu 
streichen, bis das Problem nicht mehr auftaucht und den Code dann 
Posten.

Sonnst währe das ein ganz schöner haufen. ;)

Grüße Stefan

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.