AVR ATmega Probleme mit Timer1

Gast #3803769
Lesenswert?

Hallo zusammen,

ich versuche gerade den Timer 1 auf einem AATmega ans Laufen zubekommen, 
aber irgendwie will er nicht.

Er läuft nicht. Timer 0 habe ich am Laufen, aber mit dem Timer 1 bekomme 
ich das nicht hin.

Wäre klasse, wenn mir da einer weiterhelfen könnte.
Gruß


Hier mal die entsprechenden Auszüge aus meinem Code:
1
cli();      
2
init_timer1();    
3
sei();
4

5
void init_timer1(void)
6
{
7
  TCCR1B |= (1<<CS10) | (1<<CS12);  // Prescaler 1024
8
  TCCR1B = (1<<WGM12);  // CTC Modus (Clear Timer On Compare)
9
  OCR1A = 256-1;
10
  TIMSK1 |= (1<<OCIE1A);  // Timer/Counter1 Output Compare Match A Interrupt Enable
11
}
12

13
ISR (TIMER1_COMPA_vect)
14
{
15
  PORTC ^= ( 1 << PC5 )
16
}
#3803873
Lesenswert?

Uwe schrieb:
> Hallo,
>
> ja, Ich habe mal den Timer0 konfiguerit und den laufen lassen, das
> fuktioniert, nur der Timer 1 läuft irgendwie nicht.

Ein komplettes, möglichst simples Programm, in dem nur der Timer 1 
vorkommt, könnte viel mehr Klarheit bringen, als die ständige Aussage 
'läuft irgendwie nicht'. Solange nicht 100% ausgeschlossen werden kann, 
dass du nicht noch irgendwo mindestens 1 Fehler im Programm hast, ist 
die Arbeitshypothese 'Der µC hat einen Schaden'. bzw. 'der Compiler hats 
vermurkst' als eine zu verwerfende anzusehen. Die Wahrscheinlichkeit, 
dass du einen Programmfehler hast, liegt nun mal bei 99%, während die 
anderen beiden Alternativen eine Fehlerwahrscheinlichkeit von 1% (wenn 
nicht noch weniger) haben.

Und nein: Die Vorgehenswiese "ich schreib mal alles für den Timer 0 und 
ändere dann einfach alle 0 auf 1 um" ist nicht zielführend. Willst du 
den Timer 1 benutzen, dann geht die ganze Konfiguration mit dem 
Datenblatt für den Timer 1 von vorne los. Insofern ist das völlig 
irrelevant, dass es mal mit dem Timer 0 funktioniert hat. Allenfalls 
kann man daraus die Aussage ableiten "der µC läuft grundsätzlich". Mehr 
aber auch nicht.

In diesem Sinne ....
#3803937
Lesenswert?

Uwe schrieb:
> Vielleicht wird es dann klarer.

Nein. Mal abgesehen davon, dass du es mit dem Verteilen auf mehrere 
Files ein wenig übertreibst und dass die Funktionsprototypen fehlen, die 
vollkommen unwichtigen Warnings dafür hast du ja grosszügig ignoriert, 
ist doch alles in Ordnung.
Wenn du uns jetzt allerdings noch, wie von dummy schon angemerkt, 
erzählst, um welchen Controller es sich handelt, könnte man dir wirklich 
helfen.


möööp schrieb:
> Also bei mir lässt sich das nicht compilieren. Kein wunder bei den
> fehlenden includes.
Natürlich lässt sich das compileren.

Ingo schrieb:
> Welche IDE nutzt du denn eigentlich die diesen Kram compilieren kann?
Eine IDE kann überhaupt nicht compilieren.

mfg.
Gast #3803953
Lesenswert?

Thomas Eckmann schrieb:
> Erzähl einfach, was du erwartest und was du bekommst. Dann können wir
> dir sagen, ob du das auch erwarten kannst.
Also wenn du immernoch nicht weisst was er will hast du den Text nicht 
gelesen. Ich denke damit hast du es schon auf den Punkt gebracht:

> die Funktionsprototypen fehlen, die
> vollkommen unwichtigen Warnings dafür hast du ja grosszügig ignoriert
#3803959
Lesenswert?

Paul Baumann schrieb:
> Ich weiß, daß Dir das in C nicht nützt. Trotzdem ginge es mit Bascom
> einfacher:

Doch. Das ist sehr nützlich.

Kann man mit
1
#include <bascom.h>

einbauen.


Ingo schrieb:
> Also wenn du immernoch nicht weisst was er will hast du den Text nicht
> gelesen.
Das wirst du wohl kaum beurteilen können.

> Ich denke damit hast du es schon auf den Punkt gebracht:
Nein. Es läuft trotzdem.

mfg.
#3803979
Lesenswert?

Ingo schrieb:
> Thomas Eckmann schrieb:
>> Was ich allerdings nicht weiss, ist, was er von seinem Programm
>> erwartet.
>
> Uwe schrieb:
>> ISR (TIMER1_COMPA_vect)
>> {
>>   PORTC ^= ( 1 << PC5 )
>> }
> Ist dir das hieraus wirklich nicht ersichtlich?
> Falls nicht bezweifle ich das:
>
> Thomas Eckmann schrieb:
>> Natürlich weiss ich mehr als er.

Würde du dich jetzt mal mit deinen dämlichen Kommentaren zurückhalten
und einen sinnvollen Beitrag schreiben.

Brauchst mir nicht drauf zu antworten. Du stehst jetzt in meinem 
Idiotenfilter. Mit Leuten wie dir, sabbel ich mich nicht lange ab.

mfg.
#3804008
Lesenswert?

Ingo schrieb:
> Thomas Eckmann schrieb:
>> einen sinnvollen Beitrag schreiben.
>
> Hier:
>
> Ingo schrieb:
>> Hier fehlt im Übrigen ein Semikolon

Das ist schon lange Schnee von gestern, seit er das Zip File gepostet 
hat.

Der Code im Zipfile hat nach erstem Darüberschauen genau die Probleme, 
die Thomas schon angemerkt hat.

Die Frage ist, was der TO erwartet. Wenn der µC wirklich mit 8Mhz läuft, 
dann blinkt seine LED mit 20Hz. Die meisten würden wohl das Flackern 
gerade noch so sehen können, wenn man allerdings nicht genau schaut, 
dann kann man das auch leicht übersehen.
Daher auch die Frage, was der TO eigentlich vom Code erwartet.

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