Hallo
ich bin jetzt seit 2 Tagen mit dem Interrupt am kämpfen.
Ich verstehe nur nicht warum er mir entweder Seite 1 oder Seite 2
anzeigt wenn ich die If Bedingung ändere.
Eigenlich sollte er ja zwischen beidem Toggeln.
Ich nutze WinAVR und einen AT90S2313 mit 4 Mhz
Danke im vorraus
Björn
Hast du schon mal an die Möglichkeit gedacht, daß der Controller
vielleicht nicht mehr aus der lcd_puts() Funktion zurück springt?
Wenn du deine main() durch die folgende main() ersetzt...
1
intmain(void)
2
{
3
TCCR0=(1<<CS02)|(1<<CS00);/* Teiler auf CPU/1024 */
*** AUTSCH ***
Ich sehe heute mal wieder den Wald vor lauter Bäumen nicht... schäm
Du musst natürlich deine if-Abfrage in eine Endlosschleife einbetten, da
sonst diese Abfrage nur EINMAL durchgeführt wird!
Mach dat mal so:
Hallo Magnetus
Danke erstmal dafür.
Aber das ist es leider auch nicht.
Die Displayroutinen sind io. Habe ich schon alles in anderen datein
ausprobiert.
Ich Weiß halt nur nicht ob mein Problem am Interupt oder an der Abfrage
Counter <= 3000 liegt.
Björn wrote:
> Ach nochwas>> main.c:20: warning: `TIMER0_OVF_vect' appears to be a misspelled signal> handler>> hat das was zu sagen?
Jau... Dein Compiler weiss nicht wirklich was du willst.
Welchen Controller verwendest du? Wenn du einen der folgenden Controller
verwendest musst du den Namen 'TIMER0_OVF0_vect' verwenden!
AT90S2313, AT90S2323, AT90S2343, ATtiny22, ATtiny26
Gruß,
Magnetus
Jetzt wirds klar und es läuft. Vielen Dank
Aber warum ich dachte ich teile den Takt duch 1024 und nicht erst duch
1024 und nochmal durch 256?
4 Mhz/ 1024 = 3906,25 Hz
3906,25 /256 = 15,258... Hz = 65536µS
?????
jetz bin ich richtig durcheinander :)
> Aber warum ich dachte ich teile den Takt duch 1024 und nicht erst duch> 1024 und nochmal durch 256?>> 4 Mhz/ 1024 = 3906,25 Hz> 3906,25 /256 = 15,258... Hz = 65536µS> ?????> jetz bin ich richtig durcheinander :)
- Der Prozessor wird mit 4.000.000Hz getaktet
- Der TIMER0-Prescaler steht auf clk/1024
- Der TIMER0_OVF0 Interrupt tritt auf wenn TIMER0 überläuft
(nach 256*1024 Takten)
Rechnung:
( 1s / 4.000.000Hz ) 1024 256 = 0,065536s
Gruß,
Magnetus