timer interrupt atmega128a

OP #2560848
Moin!

Wieso habe ich auf PC0 UND PC1 ein Rechtecksignal?
Der Atmega läuft mit 3,6864MHz, erhaltene Impulsdauer momentan 30µs.
Sieht irgendjemand einen Fehler, der auf so ein Verhalten hinweist?
Gruß,
wastlB
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
int main(void)
5
{
6
DDRC |= (1<<PC1)|(1<<PC0);
7
PINC |= (1<<PC1)|(0<<PC0);
8

9
TCCR0 |= (1<<WGM01)|(0<<WGM00)|(0<<COM01)|(0<<COM00)|(0<<CS02)|(0<<CS01)|(1<<CS00);
10
TIMSK |= (1<<OCIE0);
11
TIFR |= (1<<OCF0);
12
OCR0 = 56;
13
sei(); 
14
while(1)
15
{}
16

17
return 0;
18
}
19

20
ISR(TIMER0_COMP_vect)
21
{
22
PORTC ^= ~(1<<PC1);
23
}
#2560882
Die Zeiten stimmen zwar beim Nachrechnen mit dem überein, was sie sein 
sollten. Nichts desto trotz:

Du hast aber schon die M103 Fuse gelöscht?
Ansonsten macht den 128-er beim ersten auftretenden Interrupt einen 
restart.
Was dein beobachtetes Verhalten ganz zwanglos erklären würde.
OP #2560888
habe jetzt PORTC |=(1<<PC0) stehen, ändert aber leider nichts am 
verhalten.
zur anwendung: ich werde mehrere ventile parallel schalten müssen, 
deshalb kommt nur eine timeranwendung in frage. der restliche code ist 
komplexer (es müssen auch tasten abgefragt werden, ein LCD beschrieben 
werden...) nur der timer macht mir hier eben sorgen.
gibt es irgendwelche Fuses die dafür verantwortlich sein könnten?
die schaltung an sich ist auf einer professionell gefertigten platine 
drauf, kurzschlüsse zwischen den pins habe ich ausgeschlossen 
(multimeter).
OP #2560895
wenn ich die m103c fuse lösche, so erhalte ich kein rechteck mehr, 
sondern eine steigende flanke rechteck, aber eine abfallende flanke 
sägezahn. die frequenz ändert sich hierbei auch auf etwa 6,6kHz

edit: ich habe allerdings auch OCR0 auf 0xFF gesetzt...
Gast #2560986
Lötzinnrest zwischen PC1 und PC0?

Kannst du PC0 und PC1 statisch im Programm unabhängig voneinander 
schalten, indem du PORTC ^= ~(1<<PC1); Anweisungen benutzt?

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.