mit PWM keine Interrupts

Gast #1077226
Hallo, ich habe einen ATMEGA644@16MHz so programmiert, dass beim PortC 
ein Pin-Change-Interrupt ausgelöst wird. Angeschlossen sind 8 Tasten. 
Die Auswertung funktioniert soweit.

Nun soll der Controller aber auch noch einen PWM mittels TIMER0 
ausgeben.

Unten sind die Zeilen, die ich vorm sei in mein Listing einfüge.

Der PWM funktioniert, aber leider reagiert der ATMEGA644 nicht mehr auf 
die Tasten. Sobald die paar Zeilen gelöscht sind, geht wieder alles....


Hat jemand einen Tipp für mich?

Holger





;ATMEGA644@16MHz
;
;Timer0 schaltet einen ~245Hz 50:50 PWM für die Fotodiodenan PORTB.3
;clear OC0 oncompare match, set OC0 on BOTTOM (nicht invertierend)

ldi   r21, (1<<COM0A1) | (1<<WGM01) | (1<<WGM00)
out   TCCR0A,r21

ldi   r21, (1<<CS02)
out   TCCR0B,r21

ldi   r21,(1<<PB3)  ;OC0/PB3 = Ausgang
out   DDRB, r21

ldi   r21,0b10000000
out   OCR0A,r21

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.