;----------------------------------------------------------------------- ; Check BusyFlag von der LCD (HD44780U) ; BusyFlag steht an LCD Pin D7 an ; D7 geht in Port B Pin 7 (Atmel 90S2313) ; D7 ist auch Datenbin!!!!!! daher umschalten nötig , von Ausgang auf Eingang auf Ausgang ;----------------------------------------------------------------------- chkBusy:cbi portd,0 ;LCD- Anschluss RS = 0 (Befehlsmodus) sbi portd,6 ;LCD-Anschluss R\W auf Eins rcall PB7in ;Alles vorbereiten zum Einlesen des Busyflags an LCD-Anschluss D7 ldi r18,0x00 ;Zähler, wie oft wurde Busyflag ausgelesen chkbsy1:sbi portd,1 ;LCD- Anschluss E auf High setzen (Flanke erzeugen) inc r18 ;Hier ist schön Zeit Zähler zu erhöhen cbi portd,1 ;LCD- Anschluss E wieder auf Low setzen (Flanke fertig) in r16,PINB ;Lese Port B ein andi r16,0x80 ;Maske auf PinB 7 cpi r16,0x80 ;Teste PinB 7 breq chkbsy1 ;Busyflag noch 1; gehe wieder hoch lsr r18 ;Test ist Busyflag "gerade" oft ausgelesen worden brcc chkbsye ;(gerade) dann überspringe nächste paar Zeilen \ sbi portd,1 ;(ungerade) E auf High setzen Bei 8 Bit Modus weglassen cbi portd,1 ;E wieder auf Low setzen / in r16,PINB ;Lese Port B ein / chkbsye:cbi portd,6 ;LCD-Anschluss R\W auf Null rcall PB7out ;LCD ist fertig also PinD 7 wieder als Ausgang ret