Hallo Leute,
ich verstehe das alles nicht mehr.
Ich habe ein kleines Testprogramm geschrieben, das die Spannung an PB2
ständig wechselt, so das auf dem Oszilloskop an PB2 ein Rechteck zu
sehen ist.
ldi r16,0b00000100
loop: in r17,PORTB ;1 Takt
eor r17,r16 ;1 Takt
out PORTB,r17 ;1 Takt
rjmp loop ;2 Takte
Quarz = 7,3768 MHz
Ein Takt dauert also 135,56 ns
Die Schleife sollte in 677,8 ns abgearbeitet sein.
Auf dem Oszilloskop messe ich aber 1350 ns, also genau das Doppelte.
Das Oszilloskop ist OK, da ich am Quarz ungefähr 7,4 MHz messe.
Laut Datenblatt vom ATMega8 sollten die 677,8 ns aber richtig sein:
CPU-Takt | T1 | T2 | T3 | T4 | T5 |
_ __ __ __ __ _
135,56 ns | |__| |__| |__| |__| |__| |_
Fetch in |_____|
| |
Execute in |_____|
Fetch eor | |
Execute eor |_____|
Fetch out | |
Execute out |_____|
Fetch rjmp | |
Execute rjmp |_____|
| |
Das sind genau die 5 Takte, die die Schleife braucht.
Wieso messe ich das Doppelte? Irgendwo ist da der Faktor 2 drin, aber
wo?
Die Fuses stehen auf Ext. Crystal:
CKSEL=1111
SUT=01
BODLEVEL=1
BOOTSZ=00
Hat jemand eine Idee ?
Gruß ... Uwe
Hi du invertierst bei jedem Schleifendurchlauf deinen PortB2. Also wirst du als Ausgangsfrequenz eben fosz/10 bekommen. Matthias
Gast
#228543
Ich verstehe so wenig von Assembler, dass ich nicht ohne Blick ins Datenblatt (und dazu hab ich jetzt keine Lust) weiß, was Dein Programm macht. Was macht es denn? Gibt jeder Schleifendurchlauf einen Impuls oder ändert jeder Durchlauf den vorherigen Zustand? Wenn letzteres der Fall ist, ist klar, dass dann Dein Rechteckimpuls eine Periodendauer von ZWEI Schleifendurchläufen hat.
Gast
#228544
@Matthias: Meinst Du mit 10 eine Binärzahl? Gruß, Michael PS: Es gibt 10 verschiedene Sorten von Menschen: Diejenigen, die den Binärcode verstehen und die anderen.
Gast
#228545
5 takte L und 5 takte H sind nun mal Foszillator/10
Gast
#228546
Achso, ja natürlich, Verzeihung... (schäm!) ! :) Gruß, Michael
Hallo MSE, du hast vollkommen recht. Ich schieb diese Peinlichkeit mal auf den Umstand, das mir heute Nacht um 2 Uhr schon fast die Augen zugefallen sind. Vielleicht sollte man diese Probleme doch einfach mal ein paar Tage ruhen lassen. Danke für die Entfernung der Brettes von meinem Kopf. Gruß ... Uwe Das Ganze könnte fast als Scherzfrage durchgehen.
Hi aber immerhing sauber vormuliert mit allen nötigen Infos so das man das Brett schon von weitem sehen konnte. So stell ich mir Fragen vor. Matthias