Uhren Tuto mit Wecker

OP #4668147
Lesenswert?

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
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #4668158
Lesenswert?

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....
OP #4668385
Lesenswert?

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?
Angehängte Dateien:
(Firma: Vescomp) #4668425
Lesenswert?

Claude B. schrieb:
> 1. Zeile ( Vorberitung)  und auf die 2., Wieder ( Vorbereitung) wie
> bekomme ich das in?

 Hier:
1
;-----------------------------------------------------
2
weiter1:  rcall  lcd_clear             ; das LCD löschen
3
    
4
;************************************************************************
5
    ldi  temp1, 0xC0
6
    rcall  lcd_command
7
    rcall  delay5ms
8
    ldi  ZL, LOW(text2*2)
9
    ldi  ZH, High(text2*2)
10
    rcall  lcd_flash_string
11
    ldi  temp1, 0x80
12
    rcall  lcd_command
13
    rcall  delay5ms
14
;************************************************************************
15

16
    mov  temp1, Stunden        ; und die Stunden ausgeben
17
    rcall   lcd_number
18
    ldi     temp1, ':'            ; zwischen Stunden und Minuten einen ':'
19
    rcall   lcd_data
20
    mov     temp1, Minuten        ; dann die Minuten ausgeben
(Firma: Vescomp) #4668565
Lesenswert?

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
    ldi  temp2, 2    ;* Cursor auf Zeile 2, Anfang
2
    rcall  SetLcdRow
3
    ldi  ZL, LOW(text*2)
4
    ldi  ZH, High(text*2)
5
    rcall  lcd_flash_string  ;* " Vorbereitung   " ausgeben
6

7
    ldi  temp2, 1    ;* Cursor auf Zeile 1, Anfang
8
    rcall  SetLcdRow
9
    ldi  ZL, LOW(text2*2)
10
    ldi  ZH, High(text2*2)
11
    rcall  lcd_flash_string  ;* " Claude Bochard " ausgeben
12
    ret
13

14
 ; Sendet den Befehl: Cursor auf Zeile in temp2
15
SetLcdRow:
16
    ldi  temp1, 0x80
17
    cpi  temp2, 1
18
    breq  slr_0
19
    ldi  temp1, 0xC0
20
slr_0:
21
    rcall  lcd_command
22
    rjmp  delay5ms

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
OP #4675455
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren