
Zitat von
homedom
Hi,
Kannst du mir da deine Denkweise mal erklären? vlt denk ich ja irgwas zu kompliziert oder so..
Code:
//Timer1 config anfang***********************************************
TCCR1B = (1<<CS12)|(1<<CS10);//cpu teiler= takt /1024
TCNT1H = 0xE1; //-> 8MHZ/1024=7812,5 => 1/11718 =128µsek
TCNT1L = 0x7A; //->1/128µsek=7812,5 => 2^16(65535)-7812,5=57722 = 0xE7A1
TIMSK = (1<<TOIE1); // bei Überlauf wird ein Interrupt ausgelöst
sei (); //Globale Interrupts freigeben
//Timer1 config ende***************************************************
also die idee mit dem ctc muss ich mir mal anschaeun.
hab jetzt ohne nachdenken mal die uhr schnell programmiert, sollte mal laufen verbessern kann man dann immer noch.
kommt vieleicht daher, weil ich letztens einfach ein blinkllicht mit timer gemacht habe
zur berechnung:
TCNT1H = 0xE1; //-> 8MHZ/1024=7812,5 => 1/11718 =128µsek
TCNT1L = 0x7A; //->1/128µsek=7812,5 => 2^16(65535)-7812,5=57722 = 0xE7A1
1. also mal die fixen 8MHz durch den Teiler
2. das ergebnis ist nur ein 7812,5 von 1sek daher der wert den ich abziehen will
3. der timer läuft von 65535 runter bis zum copare wert der ja eine sek entsprechen soll d.h. ich muss 65535-7812,5 rechnen damit der richtige wert rauskommt.
ups da seh ich gras eine zahl mit einem komma, das kann ja gar nicht genau sein!
danke mal für die idee, werd ich mir morgen genau anschauen!
mfg
low
Lesezeichen