Hi, ich laboriere gerade mit o.g. yC. Dennoch verstehe ich die Basis für den Timer1 nicht. Ich verwende "no prescaling", interne Taktung und meine Schaltung erfüllt auch voll ihre Funktion. Allerdings hatte ich Frequenz CLKio gleich der Taktfrequenz des MCU erwartet und so lange kein Ergebnis erreicht. Um meine Wartezeit zu realisieren hatte ich auf Grundlage der MCU-Taktfrequenz den Counter auf FF00 stellen müssen. Funktioniert hat es aber erst, als ich FFE0 eingestellt hatte, also erheblich weniger. Wie ist die Basis für CLKio????????????????? Danke für jeden Tip. Peter
Kannst Du bitte mal Deinen Quelltext veröffentlichen (mit Initialisierung)? Dann kann man da bestimmt mehr zu sagen... Gruß Jörg
Hallo Jörg, anbei die Initialisierungsroutine. Ziel ist es, 4800 mal pro Sekunde den Interrupt zu bekommen. Ich hätte erwartet: 1.23MHz / 4800 = 256,25 = 0x100 -> setze Timer1 = FF00 Es lief aber erst mit einem Timer1 = FFE0 d.h. -> 0x20!! Sobald ich den Takt (STK500) verändere, dann ändert sich auch der nötige Wert, eben so, wenn ich prescaling verwende. Gruss Peter Initialisierung: ldi tmp1,2 out TCCR1B,tmp1 ;es lief E0 an 1.23MHz ;20/1.23*1.84=2F->D1 an 1.84MHz ;20/1.23*3.69=60->A0 an 3.69MHz ldi PulsHWT,0xFF ldi PulsNWT,0xE0 out tcnt1h,PulsHWT out tcnt1l,PulsNWT ldi tmp1,(1<<TOV1) out TIFR,tmp1 ldi tmp1,(1<<TOIE1) out TIMSK,tmp1 (Im Interrrupt frage ich lediglich einen Port ab, also nix dolles.)
Hallo Jörg, ldi tmp1,2 out TCCR1B,tmp1 Sorry ich war blind!! Das ist natürlich mit PRESCALING (8 fach). Und 8 mal 0x20 ist dann 0x100. Schön wenn die Welt wieder rund ist. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.