Guten Tag
Ich habe die Uhre der Tuto genohmmen, für die 8515 umgebaut,
funktioniere einwandfrei. Dieser Uhr startet leider bei 00, und ich habe
angefangen mit 2 Taster die Einstellung zu ermöglichen was aber auch
scheinbar ohne Probleme lief. Ich wollte aber ein Weckfunktion einbauen,
Die Routines dazu habe ich vorbereitet, der Summer möchte ich später mit
ein Timmer erledigen, aber ich kanne in mein Datenblatte nicht finden
wie ich die Anzeige der Wecker auf die 2. zeile einbringe. Kann mir
jemand zeigen der beste Weg dafür?
Danke
Claude B. schrieb:> ich kanne in mein Datenblatte nicht finden
In welchem Datenblatt schaust du?
Bei den meisten HD44780 kompatiblen Displays beginnt die 2. Zeile an der
RAM-Adresse 0x40. Du musst also einfach das Kommando SET DDRAM ADDRESS
einfügen:
http://mil.ufl.edu/3744/docs/lcdmanual/commands.html#Sda
Und auch das Koppeln der Einstell-Taster an das Sekunden-Flag bringt
sicher ein ungeahnt holpriges und zähes Bediengefühl....
Vielen Dank Lothar.
aber Irgend wie, ich bekommen das nicht ins gang, In die Init routine
sind aber 2 Zeilen eingestellte. ich habe ein Texte ausgabe eingefügt,
die nur aud die 1. Zeile anzeigt
Vielendank, ich Probiere
Marc V. schrieb:> ; Sendet den Befehl: Cursor auf 2-te Zeile> lcd_Row2:> ldi temp1, 0xC0> rcall lcd_command> rcall delay5ms> ret
Viellen Dank und es Funktioniert, ich hatte die delay nicht ein gefügt.
Aber jetzt, ich habe ein Zeile (Vorbereitung) eingefügt, auf die
2.Zeile, ich möchte mein name einfügen, und zur Zeit ich bekomme auf die
1. Zeile ( Vorberitung) und auf die 2., Wieder ( Vorbereitung) wie
bekomme ich das in?
Danke Mark für Dein Antwort, es funktioniert.
das bedeutet, dass wenn ich noch Irrgenwo in den Programm ein 2. Zeile
einbringen möchte, ich muss diese Procedure folgen.
Was bedeutet die 0x80?
Vielen Danke
Claude B. schrieb:> das bedeutet, dass wenn ich noch Irrgenwo in den Programm ein 2. Zeile> einbringen möchte, ich muss diese Procedure folgen.
Nein.
1
lditemp2,2;*CursoraufZeile2,Anfang
2
rcallSetLcdRow
3
ldiZL,LOW(text*2)
4
ldiZH,High(text*2)
5
rcalllcd_flash_string;*" Vorbereitung "ausgeben
6
7
lditemp2,1;*CursoraufZeile1,Anfang
8
rcallSetLcdRow
9
ldiZL,LOW(text2*2)
10
ldiZH,High(text2*2)
11
rcalllcd_flash_string;*" Claude Bochard "ausgeben
12
ret
13
14
;SendetdenBefehl:CursoraufZeileintemp2
15
SetLcdRow:
16
lditemp1,0x80
17
cpitemp2,1
18
breqslr_0
19
lditemp1,0xC0
20
slr_0:
21
rcalllcd_command
22
rjmpdelay5ms
Claude B. schrieb:> Was bedeutet die 0x80?Lothar M. schrieb:> Bei den meisten HD44780 kompatiblen Displays beginnt die 2. Zeile an der> RAM-Adresse 0x40.
Demzufolge ist:
0x80 = RAM Adresse für Zeile 1 + Kommando SET DDRAM ADDRESS.
0xC0 = RAM Adresse für Zeile 2 + Kommando SET DDRAM ADDRESS
Ich komme wieder auf meiner klein Uhr, die nicht richtig tickt, wie
kanne ich diese Einstellen, und wie kann ich die sekunden einstellen,
gibt es ein Trick?
Danke
Nils S. schrieb:> Wenn du die Sekunden einstellen willst, brauchst du keinen Trick,> sondern eine Taste, die die Sekunden heraufzählt.
Was ich aber gemacht habe,
1.Probleme die Uhr läuft langsmer
2. Die Sekunden Steigen in 1 Sekundentackt, was mein Uhr damit nicht
eingestell werden kann
Danke für die Link, ich werde versuchen
Marc V. schrieb:> Um wieviel langsamer ?
Um die Heft,ungefähr, nicht gemessen und auskommentiert aber wie schon
gesagt, die sekunden Steigen von 1 pro sekunde, was mir gar nicht nütze
Nils S. schrieb:> Taster mit Timer Interrupt von ca. 20mS auslesen.
Also ei 2. Timer benutzen?
und dann in der Sekunden_up runtine als Timer(2) routine??
sekunden_up:
inc Sekunden
cpi Sekunden, 60
brne return
clr Sekunden
Ret (oder iret)
kein Berücksichtigung der Minuten
Claude B. schrieb:> Marc V. schrieb:>> Um wieviel langsamer ?>> Um die Heft,ungefähr, nicht gemessen und auskommentiert aber wie schon
Dann läuft deine Mega mit 2MHz, oder ?
Für die
Nils S. schrieb:> Die Uhr läuft falsch?
exakt, ich habe auch nur 2MHz eingestellt. noch dazu das Programm
umgestellt mit CTC-mode, für die Einstellung, bis Morgen warten
Danke