PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : On screen menü



schroejahr
11.10.2005, 20:33
Hallo, ich möchte ein on screen menu mit meinem 2zeiligen display realisieren:

Ich habe zwei taster an pb1 und pb2, das lcd ist angeschlossen und funktioniert korrekt.

Ich will die erste zeile mit taster eins umschalten : Hintergrundbeleuchtung und Led soll wahlweise in zeile eins ausgegeben werden.

Zeile 2 möchte ich dann mit taster zwei schalten, (hintergrundbeleuchtung an/aus, und led an/aus).

Habt ihr einen denkanstoss für mich ? ich bin bis jetzt gescheitert...

Leider sind die ports ja nicht interrupt fähig, so das ich sie in einer schleife abfrage... das sollte ca so aussehen (nicht fertig, aber ich denke das es so gehen könnte...) leider bin ich auch am anfang mit den micros also korrigiert mich...

könnte das so funktionieren ?



ldi R16, 0xFF
out ddrd, r16

ldi r16, 0b00000011
out ddrb, r16

ldi r16, 0b11111110
out portb, r16

ldi r17, 0x00
ldi r21, '1'

rcall lcd_init
rcall lcd_clear




;#########################################
;########## Main loop ####################
;#########################################

loop:

sbis portb, 2
rcall switchF

tst r18
brne vergleich1


sbis portb, 3
rcall switchS

tst r20
brne vergleich2



rjmp loop


;####################################
;########## Vergleiche ##############
;####################################

vergleich1:

cpi r17, 0
breq wBacklight ;(hintegrundbel. schreiben)

cpi r17, 1
breq wled ;(led schreiben)


ldi r17, 0x00
ret



vergleich2:

cpi r19, 0
breq woff ;(off in zeile 2 schreiben)

cpi r19, 1
breq won ;(on in zeile 2 schreiben)

ldi r19, 0x00

ret



;#################################
;######### Zähleroperationen #####
;#################################

switchF:

mov r18, r21
cpi r17, '1'
breq del1

cpi r17, '0'
breq add1


ret



del1:
ldi r17, 0x00
ret


add1:

mov r17, r21
ret










switchS:

mov r20, r21
cpi r19, '1'
breq del2

cpi r19, '0'
breq add2


ret



del2:
ldi r17, 0x00
ret


add2:

mov r17, r21
ret

Hellmut
11.10.2005, 20:54
Schau dir. z.B die Testprogramme an die für die RN-Control verfügbar sind. Dort kannst du eine Implementation der Tasten-Dekodierung sehen und wie darauf hin eine Subroutine ausgeführt wird. Wie man deine Aktionen mit deinem LCd Controller tut, sollte nicht schwer im Bascom Hilfe zu sehen sein

schroejahr
11.10.2005, 21:05
hic, ich programmiere in asm, meine diesplay routinen hab ich fertig, und funktionieren auch, mir gehts aber mehr um die erkennung und die "menüsteuerung", wie die ausgabe auf dem lcd geschieht ist eher nebensächlich. es geht halt darum das er zum richtigen zeitpunkt das richtige tut, ich stell gleich mal ne grafik rein, daraus sollte man dan vesrtehen was ich meine.

schroejahr
11.10.2005, 21:22
Hier die Grafik. allerdings muss die 2te zeile beim wechsel von Beleuchtung auf LED den aktuellen zustand anzeigen