Hi Leute... Habe schon gesehen das es etliche Beiträge zu den Timern bei euch gibt aber ich find mir nichts passendes. Mal ne verständnis Frage: Der Timer (z.B:TO und 8BIT) zählt nu bis 256 und dann wird das TF0 gesetzt und der Timer fängt wieder bei 0 an (automatisch?). Kann man diese Flag nun mit z.B: if(!TF0){....}abfragen?? Muss ich das TF0 selber rücksetzten (also 0)? Habe schon öfter so ne Funktion gesehen. void interupt(void) interupt1 !!! was bedeutet die "1" und woher ist die her?? Sorry aber bin nun mal Neuling und braucher jede Hilfe!!! Danke an diser Stelle!! mfg Cri
Warum brüllst du so? (Die vielen Ausrufezeichen werden als "Anschreien" empfunden.) Die Informationen zum 8-Bit-Timer0 findest du im Datenblatt ab Seite 67. Die Registerbeschreibung findest du ab Seite 70. Der Timer0 kennt nur den Overflow-Interrupt, wenn du einen anderen Zählumfang als 256 möchtest, dann musst du ihn in jeder ISR (Interrupt Service Routine) auf einen definierten Startwert setzen. Damit der Timer einen Interrupt auslösen kann, muss das Bit TOIE0 in TIMSK gesetzt werden (Seite 70) und Interrupts global freigeschaltet werden. Damit der Timer0 überhaupt zum Laufen kommt, muss in TCCR0 ein passender Vorteiler eingestellt werden (Seite 70). Damit nun auch die richtige Routine (die ISR) aufgerufen wird, muss diese Routine geschrieben werden und ein Sprung in die Interrupt-Sprungtabelle eingetragen werden (Seite 44). Da du nicht genannt hast, welchen Controller du meinst, habe ich mir den Mega8 ausgesucht. Die Seitenangaben beziehen sich also auf das Datenblatt des Mega8. Und da du keine Programmiersprache genannt hast, habe ich Assembler vorausgesetzt. Falls du nicht den Mega8 unter Assembler gemeint hast, ist das nicht mein Problem. ...
Wo bist du denn auf ASm eingegangen, Hannes? Deine Beschreibung isrt ziemlich allgemeingültig. @Cri Gri: Der 8bit-Timer kann nur bis 255 zählen...256 wäre das Overflow-Bit.
Ich verwende als Progsprache C und den µC 89c52!! @Rahul 0-255 sind 256 Schritte. @ALL Sorry wegen dem Anschreien (!!!!) =) mfg Cri.
>0-255 sind 256 Schritte. > ... zählt nu bis 256 Der Zähler zält aber trotzdem nur bis 255, erzeugt dann einen Überlauf und beginnt wieder bei 0. Er macht zwar 256 Schritte, zählt aber nur bis 255. Das wolte ich einfach nur klarstellen. >und?kann mir keiner meine Fragen beantworten?? Hat Hannes schon etwas "überschwenglich" getan. Bei jedem Überlauf wird das TOV0-Flag gesetzt. Man kann es durch "while (!(TIFR & (1<<TOV0))" abfragen, muß es dann aber durch "TIFR |= (1<<TOV0);" zurücksetzen. Das steht wunderbar im Datenblatt(*) auf Seite 109 beschrieben. (*) ich beziehe mich auf das ATMega64-Complete-Datasheet, weil ich gerade kein anderes offen habe...
> Deine Beschreibung isrt ziemlich allgemeingültig. Naja, Hochsprachler brauchen keine Interrupt-Sprungtabelle und BASCOMer kennen die Bits und Register meist nicht. Da bleibt wohl nur ASM übrig... ;-( > und?kann mir keiner meine Fragen beantworten?? Habe ich doch getan! - Nur leider fehlte Deiner Frage die erforderliche Präzision, worauf die Antwort dir nicht so richtig half. Also nimm das Datenblatt deines Controllers und schau dir die Register des Timers und deren Bits genau an, dann siehst du auch dessen Möglichkeiten. Das verspricht jedenfalls mehr Erfolg als hier Forderungen zu stellen... ...
Sorry ich wollt euch nicht "beleidigen/verärgern"! Das mit der Interrupt-Nummer habe ich schon... Int.Vekt.-Adresse - 3 und dann alles durch 8 teilen. kommt schon hin... Ich hätte noch ne Frage und zwar:Kann ich das TF0 (beim 89C52) direkt abfragen? Also ,wie schon geschrieben, mit if (!TF0){.....} oder kann man diese Bit nicht abfragen? mfg Cri PS: Habe nie Vorderungen gestellt.
>beim 89C52 Aah! Ein 8051er! >Ich hätte noch ne Frage und zwar:Kann ich das TF0 (beim 89C52) direkt abfragen? Also ,wie schon geschrieben, mit if (!TF0){.....} oder kann man diese Bit nicht abfragen? Zu dem Thema solltest du dich mit den Special Function Registern deines Controllers auseinandersetzen. IMHO (ewig nichts mehr mit den 8051ern mehr gemacht) sollte das möglich sein... Für den Einstieg in die 8051er-Welt empfehle ich (und andere vermutlich auch) das Buch von Andreas Roth "Mikrocontroller Kochbuch". >Vorderungen "Vogel-F" wie "Pferd"? Nur so am Rande ;)
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.