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 ?
Code: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







Zitieren
Lesezeichen