Forum: Mikrocontroller und Digitale Elektronik kein toggeln


von Sven (Gast)


Lesenswert?

Hallo
bin neu und versuche gerade den Pin OC0 an meinem ATMega8515 toggeln zu
lassen.
Hierfür möchte ich den CTC Modus verwenden.
Folgendes Programm hab ich dafür geschrieben:
ldi    r16,0b00011001
out    TCCR0,r16
ldi    r16,0b00000001
out    DDRD,r16
ldi    r16,0xE
out    OCR0,r16
loop:  rjmp loop

Davor natürlcih STACK usw. initialisiert.
Mein Problem ist nun dass ich mit meinem Multi keine Freuquenz an dem
Pin messe.
Das Programm sollte meinen µC im 4MHz Betrieb eine Uhrenquarzfrequenz
entlocken.
Kann mir jemand helfen?

von Rahul (Gast)


Lesenswert?

4MHz durch 28? (0xE = 14 für eine halbe Periode, also 28 für eine volle
Periode)

von Sven (Gast)


Lesenswert?

Ah OCR0 sollte 60 sein nach der Formel im Datenblatt:
http://www.atmel.com/dyn/resources/prod_documents/doc2512.pdf

Also 0x3C
Aber das kann ja nicht das Problem sein dass ich gar nix messen kann
oder?

von Sven (Gast)


Lesenswert?

Seite 86 sorry :-)

von Rahul (Gast)


Lesenswert?

32768,...?
Kann das dein Mulimeter überhaupt messen?

von Sven (Gast)


Lesenswert?

Hmm naja kann als Einstellung jedenfalls Hz auswählen
hab vorher aber noch nie was damit gemacht bzw eine frequenz gemessen.

von Sven (Gast)


Lesenswert?

Oder kann ich das irgendwie im AVR Studio simulieren?

von Rahul (Gast)


Lesenswert?

Häng doch eine LED an den Ausgang und stell die Frequenz in einem
"sichtbaren" Bereich (1-5Hz) ein.

von Sven (Gast)


Lesenswert?

Hmm LDEs hab ich leider nicht zur Hand.
Aber sollte ich das nicht mit einem Multi messen können?
Wechsel Vcc und GND?

von Rahul (Gast)


Lesenswert?

ja, bei einer so niedriegen Frequenz müsste das gehen.
Lieber 0,5Hz...

von Sven (Gast)


Lesenswert?

Funktioniert auch nicht.
Aber mir ist was aufgefallen im Datenblatt.
Im Datenblatt auf Seite 86 steht
...by setting the Compare output mode bits to toggle mode (COM01:0=1)
Also COM01 = 1

Weiter unten auf Seite 92 Tab.45 steht COM01 = 0

Oder versteh ich das falsch?

von Sven (Gast)


Lesenswert?

Keiner ne Idee bzw. Erfahrung damit?
Was ist mit den Werten im Datenblatt?

von johnny.m (Gast)


Lesenswert?

COM01:0 = 1 heißt: COM01 = 0, COM00 = 1

von Sven (Gast)


Lesenswert?

Gut danke mal dafür jedoch hatte ich es ja so eingestellt.
Mein Code seht ihr ja oben.
Der sollte doch stimmen oder?
Hat denn eventuell jemand einen funktionierenden Code für dieses
Problem?
Wäre wirklich sehr nett

von johnny.m (Gast)


Lesenswert?

Frage: Was misst Dein Multimeter eigentlich? TTL-Pegel oder was ganz
anderes? Messstrippen in den richtigen Buchsen? Im normalen
Spannungsmessbereich wirst Du auch erst unter 1 Hz was Vernünftiges
messen können, da die meisten (preisgünstigeren) handelsüblichen DMMs
eh nur 2 Samples pro Sekunde machen...

von Thomas J: (Gast)


Lesenswert?

Misst Du auch am richtigen Pin ? OC0 liegt auf PB0.

Gruss Thomas

von Sven (Gast)


Lesenswert?

Ja den richtigen Pin hab ich 100 %.
Messgerät ist folgendes:
http://cp.literature.agilent.com/litweb/pdf/00971-90002.pdf
Auf Seite 1-8 steht Messbereich von 5 Hz - 99 KHz

von Hartmut Gröger (Gast)


Lesenswert?

Hi

Pin als Ausgang definiert?

MfG HG

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.