Forum: Mikrocontroller und Digitale Elektronik OC1A kontrollieren


von moad (Gast)


Lesenswert?

Hi
ich habe folgendes Problem:
ich verwende einen AT90S8515. Den benutze ich im Compare-modus.
Dazu wollte ich das OC1A-bit toggeln, aber auch zusätzlich
kontrollieren. wie mache ich das und wie kann ich mir im AVR-Simulator
diesen Status ansehen???

Danke schon mal im Vorraus

Gruß moad

von Andi (Gast)


Lesenswert?

Im AVR-Studio ist links der "Workspace".
An unterer Kante dessen klickst Du auf "I/O" und unter dem Zweig
"I/O AT90S8515" findest Du das dann unter "Timer_Counter_1" und
dann "TIFR" (OCF1A).
Mach Dir doch ein Interrupt-Prog on Compare Match A.
Durch das Int.-Prog kannst Du ja dann ein Flag im SRAM setzen lassen
welches Du im Main-Programm dann "gelegentlich" abfragen kannst und
nach der Abfrage zurücksetzt.
Bei 4MHz benötigt so ein IRQ-Prog ca. 5µS (0,0005%) inkl. sichern des
Statusregisters und eines Arbeitsregister (z. B. r16):

IRQonCMA:
 push r16
 in r16,sreg
 push r16
 ldi r16,1
 sts CompareFlag,r16
 pop r16
 out sreg,r16
 pop r16
 reti

.dseg:
CompareFlag: .byte 1

Du mußt nur noch am Start vor dem Main-Prog den "IRQ on Compare Match
A" in TIMSK (OCIE1A) aktivieren.

Gruß
Andi

von Andi (Gast)


Lesenswert?

Es heißt natürlich nicht ".dseg:" sondern ".dseg" ohne ":"!

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.