Hallo Freunde
Ich hab mir gerdae eine Atmega8 Board gebastelt. Und ich wollte mal die
IO-ports Takt messen, ich wollte mich vergewissern ob die Fuses richtig
gesetzt wurden. Und ich hab mir gedacht ich messe mal an Port B eine
Periode
.include "m8def.inc"
.org 0x000
rjmp main
main:
ldi r16, LOW(RAMEND)
out SPL, r16
ldi r16, HIGH(RAMEND)
out SPH, r16
ldi r16,0b11111111
out DDRB, r16
loop:
ldi r16, 0b00000000
out PORTB, r16
ldi r16, 0b11111111
out PORTB, r16
rjmp loop
und ich hab nach gerechnet also diese loop gibt mir ja die Periode auch
egal wenn nicht symmetrisch also nach diese loop muss ich doch
eigentlich eine Periodedauer von 750ns also eine Taktfrequenz von
1.333MHz an PortB ausgeben( ich hab eine 8MHz Oszillator extern
geschaltet also da ldi und out je 1 Takt brauchen und rjmp 2 Takt
braucht) leider krieg ich eine Periodendauer von 7,2us(f von 139KHz)es
richt also nach eine intern tackt von 1MHz aus. Kann vielleicht hier
jemand helfen.
klemm mal den externen oszillator ab und guck obs immer noch läuft. wenn ja hast du den fehler
dann halt mal das oszilloskop/frequenzmesser oder was auch immer direkt an den oszialltor
Ja der oszillator ist 8MHz gemessen das Problem ist an Ports auch Messungen mit Timer schlagen fehl.
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.