Hallo zusammen, wie bekomme ich den 16-Bit Timer1 eines Atmel 2313 dazu (in Assembler), permanent bis 1000 zu zählen und jedesmal einen Interrupt auszulösen, wenn die Zahl erreicht ist? Die Quarzfrequenz ist 10MHz. Danke und Gruß, Holger
Hallo, - den Output-Compare Interrupt verwenden, vorher im entsprechenden Register ( TIMSK) freischalten mittels OCE1A-Bit. Außerdenm CTC1-Bit setzen in TCCR1B. .org 0 ;Startadresse=0 rjmp RESET .org 4 rjmp OC1Aint ; timer1 Compare Match - Bei der Initialisierung 1000 in OCR1A und OCR1B einschreiben, das höhere Register zuerst. - Den prescaler passend zum Takt einstellen in TCCR1B mittels Bits CS10,CS11,CS12 Gruß
Hallo zusammen, danke für den Tip, so langsam schwant mit was, aber als Assembler-Anfänger tu ich mich noch etwas schwer! Habe noch eine Frage: ich muß eine 3-Byte große Zahl durch 360 teilen und das Ergebnis mit dem Ergebnis einer Subraktion multiplizieren. wie geht man da am besten vor? Gibt es irgendwelche Standardproceduren oder hat jemand einen guten Tip? Danke und Gruß, Holger
Tipp: Es gibt eine Suchfunktion hier im Forum und auch in der Codesammlung. Da findet sich einiges, schau Dir das mal an, wenn Du dann noch Fragen hast, können wir ja weitersehen...
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.