ATMega16 Counter in C zu langsam

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 26 11 2024  04:31:56      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
ATMega16 Counter in C zu langsam
Suche nach: atmega16 (131)

    







BID = 90839

Magni

Gelegenheitsposter



Beiträge: 91
Wohnort: Edewecht
ICQ Status  
 

  


Hi,

ich aktiviere den Timer/Counter0 (8-Bit) mit diesem Code:



Code :


// Takt / 256
TCCR0 = _BV (CS02);
// Als Interrupt konfiguriert
timer_enable_int (_BV (TOIE0));



Das Signal wird hier eingefangen:



Code :


/****** Der 8-Bit Timer/Counter0 Interrupt *****/
SIGNAL (SIG_OVERFLOW0)
{
CounterNull++;
}



Der ATMega16 läuft mit 4 MHz! Das bedeutet, dass bei einem Teiler von 256 wäre eine Sekunde genau 15625 Hz lang.

Aber bis CounterNull auf 15625 gelangt dauert es eine Ewigkeit. Damits in etwa eine Sekunde dauert, muss CounterNull etwa 61.035... zählen.

Wieso ist der Counter soo laaam???

gr
Magni

BID = 90846

Benedikt

Inventar

Beiträge: 6241

 

  


Zitat :
Magni hat am 11 Aug 2004 13:16 geschrieben :

Hi,

ich aktiviere den Timer/Counter0 (8-Bit) mit diesem Code:

// Takt / 256
TCCR0 = _BV (CS02);
// Als Interrupt konfiguriert
timer_enable_int (_BV (TOIE0));



Ist OK



Zitat :

Das Signal wird hier eingefangen:

/****** Der 8-Bit Timer/Counter0 Interrupt *****/
SIGNAL (SIG_OVERFLOW0)
{
CounterNull++;
}
Der ATMega16 läuft mit 4 MHz!

Bist du da sicher ? Standartmäßig sind 1MHz aktiviert.


Zitat :

Das bedeutet, dass bei einem Teiler von 256 wäre eine Sekunde genau 15625 Hz lang.
Aber bis CounterNull auf 15625 gelangt dauert es eine Ewigkeit.

Soweit alles klar


Zitat :

Damits in etwa eine Sekunde dauert, muss CounterNull etwa 61.035... zählen.

Wie kommst du auf diese Zahl ?

BID = 90851

Magni

Gelegenheitsposter



Beiträge: 91
Wohnort: Edewecht
ICQ Status  

@ Benedikt, danke für die Hilfe.



Zitat :


Zitat :

Das Signal wird hier eingefangen:

/****** Der 8-Bit Timer/Counter0 Interrupt *****/
SIGNAL (SIG_OVERFLOW0)
{
CounterNull++;
}
Der ATMega16 läuft mit 4 MHz!


Bist du da sicher ? Standartmäßig sind 1MHz aktiviert.

Ziemlich, da ich einen 4 Mhz Oszillator an XTal 1 angeschlossen hab und wenn ich das ding abzieh, dann läuft er nicht mehr. Deswegen geh ich davon aus, dass er nicht auf die Idee kommt mit internen 1 Mhz zu laufen.


Zitat :


Zitat :

Damits in etwa eine Sekunde dauert, muss CounterNull etwa 61.035... zählen.

Wie kommst du auf diese Zahl ?

\fed\mixon((4000000Hz/256)/256) ~= 61.03515625

Irgendwie schauts so aus, als ob er schon mit nem 256 Teiler läuft, oder der µC läuft mit einem 4Mhz/256 Clock. Aber wieso und warum?

BID = 91080

Magni

Gelegenheitsposter



Beiträge: 91
Wohnort: Edewecht
ICQ Status  

Ach, ich weiß nun wo der Hund begraben liegt. Es war ein Logikfehler meinerseits. Denn das ist ja ein Overflow-Interrupt, d.h. er löst einen Interrupt aus wenn er bis 256 gezählt hat.
Das bedeutet, dass ein Overflow-Interrupt bei einem Vorteiler von 256 sich (4000000/256Vorteiler)/256Zählen ~ ca.62 Mal in der Sekunde melden würde.

Ich habe einfach vergessen, dass der Overflow Interrupt erst zählt und dann unterbricht.

@Benedikt: Trotzdem Danke für die Fehlersuche

Gr
Magni


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182400769   Heute : 543    Gestern : 7426    Online : 346        26.11.2024    4:31
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0473630428314