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