Hast Dir im Datenblatt mal die letzten Seiten angeschaut, wo die ganzen Befehle aufgelistet sind?Außerdem hast Du noch einen logischen Fehler im Programm, dazu komme ich aber später! ;o)
Jo, hab ich ja dann noch gemacht (habs auch oben geschrieben), aber dann braucht er wesentlich länger als eine 1 Sekunde.
Hast Dir im Datenblatt mal die letzten Seiten angeschaut, wo die ganzen Befehle aufgelistet sind?Außerdem hast Du noch einen logischen Fehler im Programm, dazu komme ich aber später! ;o)
Habs grad offen.
Kann ja eigentlich nur an den 3 Zeilen hier liegen, oder?
Code:inc zaehler ;Zählregister um 1 erhöhen cpi zaehler, 0b01000010 ;Wenn Zählregister = 65 ist breq zeitum ;spring zu "zeitum:" wenn zaehler = 65
Hallo Thomas,
Du hast schon kappiert, wie es zu lösen ist, gut,
was Dir nur fehlt ist die Erfahrung, aber mit so kleinen Programmen bekommst Du sie schon,
Ich habe mir den Code zwar nicht ganz angeguckt aber schaue hier:
Die ersten 3 Zeilen sind geil, so muß es sein, ABER breq zeituminc zaehler ;Zählregister um 1 erhöhen
cpi zaehler, 0b01000010 ;Wenn Zählregister = 65 ist
breq zeitum ;spring zu "zeitum:" wenn zaehler = 65
zeitum:
zeitum:
Er geht IMMER nach zeit um breq Zeitum -> springe nach zeitum , wenn gleich, sonst mach weiter im Programm, und was steht genau unter breq zeitum ??
Verstehst Du ?
Edit. O weh, was bin ich langsam, Gut Florian dann erklär Du Ihm das sonst bekommen wir hier ein durcheinander![]()
noch besser, Du löscht mein Post hier
Ich schaue mir lieber die PN an
Jo, ok, das ist klar, war dumm von mir
Aber wie schon oben geschrieben, hab ich nach dem breq ein "reti" reingemacht, aber dann binkt er sehr viel langsamer als eine Sekunde.
Das ist ein kleiner Denkfehler!Aber wie schon oben geschrieben, hab ich nach dem breq ein "reti" reingemacht, aber dann binkt er sehr viel langsamer als eine Sekunde.
Hast Du Dir die Befehlsliste (Instruction Set Summary) im Datenblatt mal angesehen?
Da steht was von Clocks!
Was wird das wohl bedeuten? ;o)
Thomas,
hast Du den Code inzwischen geändert?
Ich meine Die erste version hat mir besser gefallen
Ahhh...da muss man aber viel beachten
Das heißt dann wohl, dass die Befehle inc und cpi 1 Takt brauchen und breq nen halben Takt und reti 4?
Das heißt ich muss anstelle von 65...*rechne*hmm...auf jeden Fall sehr viel weniger eintragen muss *g* irgendwie muss ich 6,5 Takte abziehen. Aber 0,5 ist ja schlecht zum abziehen...Entspricht 1 Takt = 1 ms? Dann müsste ich anstelle von 65 die Zahl 46 eintragen...
Hmm..nee, immer noch zu hoch. Wieviel Zeit beansprucht denn ein Takt?
@Sebastian:
Welche 1 Version? Ich hab noch das reti hinzugefügt, mehr nicht.
Thomas,
Vergiss Die sache mit 1 Takt hier ein Takt da, quatsch, so Genau kommt es sich nicht!!!
dann nehme einen taschenrechner und rechne , bei 4MhzWieviel Zeit beansprucht denn ein Takt
1 / 4000000 da mach der eine oder andere Takt nichts aus
Du hast einen 4 Mhz Quarz!
Das sind bei 1 MIPS 4000000 Takte!
Logisch oder? ;o)
1 / 4000000 Sekunde sind 0,000.000.25 bzw. 0,25 µS, wenn ich mich nicht irre!?
Überigens gibt es keine halben Takte, das 1 / 2 soll bloß 1 oder 2 Takte bedeuten!
Ob nun 1 oder 2 Takte hängt von der Sprungrichtung ab!
Lesezeichen