hi, ich wollte für mein LCD diese Pause einfügen...ich benutze 16MHz. Nun wollte ich das so berechnen: http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD#Lass_den_Assembler_rechnen allerdings habe ich das nicht verstanden wie ich dort bei 16 MHZ auf die Pausen komme. Kann mir das nochmal jemand erklären?
> "... Bei 4 Mhz werden also 4000000 / 3 * 50 / 1000000 = 66.6 Durchläufe > durch die Schleife benötigt um eine Verzögerungszeit von 50µs (0.000050 > Sekunden) zu erreichen, hexadezimal ausgedrückt: $42 ..." steht direkt darunter ;) Einfach die 4000000(Hz) durch deine 16Mio. ersetzen. Und du musst die Zahl ja nicht unbedingt als Hexzahl in den Code schreiben ;) hth. Jörg
das geht ja nicht den bei der Rechnung mit 16MHz kommt das Raus: ((16 000 000 / 3) * 50) / 1 000 000 = 266.666667 was nicht Möglich ist
> dann isses halt aa bisschen weniger...
Bleibt die Frage, ob das reicht, d.h. wie genau die 50µs eingehalten
werden müssen (steht im Datenblatt des Displays bzw. dessen
Controllers).
Wenn die 255 (oder auch 0 ;) ) nicht gehen, kannst du noch ein "nop"
einbauen:
1 | .equ XTAL = 16000000 ;muss irgendwo an den Anfang ;) |
2 | ... |
3 | delay50us: ; 50us Pause |
4 | ldi temp1, ( XTAL * 50 / 4 ) / 1000000 |
5 | delay50us_: |
6 | dec temp1 |
7 | nop ; tu nichts |
8 | brne delay50us_ |
9 | ret |
In der Formel steht jetzt eine 4, weil die schleife länger dauert. hth. Jörg
> das geht ja nicht den bei der Rechnung mit 16MHz kommt das Raus: > ((16 000 000 / 3) * 50) / 1 000 000 = 266.666667 > was nicht Möglich ist Genau das steht ja auch im Tut. drinnen ;-) >doch dein register kann bis 255 dann isses halt aa bisschen weniger... Das geht eben nicht, wenn man es den Assembler ausrechnen lässt.
>> wird das jetz nicht weniger pause
Nein, die Schleife dauert ja länger ;)
hth. Jörg
ok...ich dachte es liegt an den pausen, das dass nicht geht Beitrag "cbi und sbi jedoch mit variablen"
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.