Forum: Mikrocontroller und Digitale Elektronik LCD Busy Flag Abfrage im 8 Bit Modus


von rudolf58 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich möchte das Busyflag abfragen und ich finde den Fehler im 
Programm nicht. Ein "normaler" HD44780 wird an einem ATMega8A betrieben.
Solange ich mit delays arbeite funktioniert alles problemlos, wenn ich 
das BF abfrage, dann funkioniert es nicht wie es soll.
Daraus die Vermutung dass der Fehler in der BF Routine liegt.
Im Anhang der Programmteil. Vielen Dank für konstruktive Antworten.
Im Anhang der Programmcode.

von Thomas Z. (usbman)


Lesenswert?

rudolf58 schrieb:
> Im Anhang der Programmcode.

Ich sehe da keinen Programmcode nur eine seltsam formatierte Textdatei. 
Ich bin zu busy um das zu entschlüsseln.

von Berater (Gast)


Lesenswert?

rudolf58 schrieb:
> Vielen Dank für konstruktive Antworten.

Erst mal einen Prgrammcode liefern der lesbar ist.
Wer Tabs in Sources verwendet lebt für sich allein.

Jeder Editor von heutzutage erlaub es Tabs durch Spaces
zuersetzen und zu formatieren (zur Not mit Find & Replace)

Sources postet man in *.c oder in *.asm, aber nicht in *.txt

von Georg G. (df2au)


Lesenswert?

Du liest das Flag falsch.
E aktivieren, Register lesen und merken, E wieder deaktivieren. Flag 
auswerten (aus gemerktem Wert). Wenn Busy, von vorn.

von rudolf58 (Gast)


Angehängte Dateien:

Lesenswert?

Berater schrieb:
> Jeder Editor von heutzutage erlaub es Tabs durch Spaces
> zuersetzen und zu formatieren (zur Not mit Find & Replace)

Sie haben Recht, dieser Datei im Anhang ist Mist. Wenn ich gewusst 
hätte, dass das in einem derartigem grausigen Format angezeigt wird, 
hätte ich das so nicht abgeschickt. Mir fehlt leider das Know How wie 
das mit dem Ersetzen funktioniert. Ich habe deshalb diese Textdatei 
nochmals bearbeitet und hoffe nun, dass es jetzt besser lesbar ist.

von rudolf58 (Gast)


Lesenswert?

Georg G. schrieb:
> E aktivieren, Register lesen und merken, E wieder deaktivieren. Flag
> auswerten (aus gemerktem Wert). Wenn Busy, von vorn.

Danke, wenn ich das richtig verstehe würde das dann so aussehen:

sbi Steuerport, PIN_E    ; wie bisher
in temp1, Datenport      ; Datenport = Port D
cbi Steuerport, PIN_E    ; PIN_E = 4 Steuerport = Port B

.... wenn das BF gesetzt ist würde dann im MSB eine 1 stehen.
Die Auswertung mit sbic funktioniert mit temp1 = r16 nicht.
Ich steh da einfach auf der Leitung ...

von rudolf58 (Gast)


Lesenswert?

Kann ja auch nicht funktionieren. sbic ist ja nur für IO Register. Mit 
sbrc sollte es klappen. Danke nochmals.

von Jörn P. (jonnyp)


Lesenswert?

Und wo ist:
rcall Lcd_PulsE  ?
Ich sehe kein solches label.

von Mitlesa (Gast)


Lesenswert?

Jörn P. schrieb:
> Ich sehe kein solches label.

Ich sehe es schon ..... ungefähr hier:

Beitrag "LCD Busy Flag Abfrage im 8 Bit Modus - die zweite"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.