Forum: Mikrocontroller und Digitale Elektronik Zähler bis 1000


von Holger Körber (Gast)


Lesenswert?

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

von Chris (Gast)


Lesenswert?

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ß

von Holger Körber (Gast)


Lesenswert?

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

von thkais (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.