Hallo. Ich habe mal ein kleines Progi zum testen vom Timer0 geschrieben jedoch läuft es nciht.Also ich sehe die Led nicht blinken. Kann mir jemand sagen was ich falsch mache? Bitte! Mfg Cri :)
hmm...komisch. Habe zufälli bemerkt das er doch blink doch in einem Zeitabstand von ca.30 sek.! Habe mal ms nur bis 10 zählen lassen und dabei blinkt er ungefähr in einem Zeitabstand von 1 sek. Was versteh ich denn da nicht?warum muss der nur bis 10 und nicht bis 1000 zählen?
Was bedeuten diese Zeilen:
1 | EA = 1; |
2 | ET0 = 1; |
3 | TMOD = 0x02; |
4 | TL0 = 0x06; |
5 | TH0 = 0x06; |
6 | TR0 = 1; |
EA = Allg. Inter. Freigane ET0= Int.Timer0 Freigabe TMOD = 0x02; => Timer0 auf 8 Bit Auto Reload gestellt TL0=0x06; => Timer 0 mit 6 vorgeladen damit er 250µs zählt TH0=0x06; => das selbe TR0 => Timer 0 starten
Hab den Fehler schon gefunden! :) Ich habe count falsch platziert. RICHTIG: . . . void T0_Int(void) interrupt 1 { count++; if(count == 4) // 1msek. { ms++; count = 0; // <- JETZT IST ES RICHTIG if(ms==1000) // 1sek. { Led = ~Led; // Led Ein/Aus ms=0; } } } . . . Der Timer zählt bis 1ms dann wird ms inkrementiert und count auf 0 gesetzt. Danach addiert der Timer wieder 1ms bis ms =1000ms ist.Also 1 sek. Danke Trotzdem! Mfg Cri
Oh da warst du schneller. Ich war noch bei der Kontrolle der sechs Timer-Init-Zeilen. Die sind richtig ;-)
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.