Mega8 assembler LCD ADC beendet nicht

Gast #3431108
Lesenswert?
• ▲
▼
Moin,
Bin gerade dabei eine ECU für meine modellturbine zu bauen, 16x2 lcd, 
Mega8, lcd routine aus dem tut leicht verändert so, dass E und RS an 
PORTB hängen, obwohl die daten durch PORTC laufen. Das funnktioniert 
soweit alles einwandfrei und sollte mit dem Problem (eigentlich) nichts 
zu tuhen haben.

Die Sache ist, dass ich zwecks Abgastemperatur ein thermoelement mit Op 
am ADC4 (PC4) hängen habe. Wenn ich jetzt den ADC arbeiten lasse mit:


;ADC initialisierung
ldi temp, 0b01000100
sts ADMUX, temp    ; 2.56V Referenz, Left Adjust, PC4

...

ldi temp, 0b11000100
sts ADCSRA, temp   ;Start ADC conversion

readADCvalue:
lds temp, ADCSRA
sbrc temp, 6 ; 0 wenn fertig
rjmp readADCvalue

lds temperaturL, ADCL
lds temperaturH, ADCH


Bleibt das rogramm in der schleife hängen. ADSC wird also nie 0. Wenn 
ich die schleife weg lasse und auf free running stelle, bzw es mit 
interupt versuche bleibt nichts mehr hängen, aber aus ADCH und ADCL 
kommt immer die gleiche Zahl. Wenn ich innerhalb vom hängenden loop den 
Wert von temp aufs Display ausgebe bekomme ich erwartungsgemäß 11000100, 
also das gleiche, was ich oben in ADCSRA geladen habe.

Könnte es sein, dass das an der PORTC verwendung vom LCD lieg? Aber dan 
sollte das ding ja zumindest die konvertierung abschließen können oder?
Kann mir da jemand helfen? Bin am ende meines wissens was das angeht. 
Der volle (wohl etwas unübersichtliche) code steht im Anhang.

Danke schon mal
Amper
Angehängte Dateien:
Gast #3431178
Lesenswert?
• ▲
▼
Leider nicht, dass ist beim mega außerhalb des bereiches, lässt sich nur 
mit sts und lds erreichen. die inits etc habe ich von einem vorherigen 
test 1:1 übernommen, sollte eigentlich soweit alles passen.
#3431555
Lesenswert?
• ▲
▼
Amper schrieb:
> seltsam, da is wohl irgendwas mit meinem compiler krumm, include passt,
> einstellungen passen... hm

Welches AVR-Studio?

Die neueren haben da auch so eine besch... Sache, dass sie auch bei 
Assembler den µC Typ voreingestellt haben wollen und die Angabe im 
Assembler Code übergehen.


PS: Es heisst Assembler und nicht Compiler.

Compiler  ... Hochsprache
Assembler ... einfache Umwandlung von Memnonics in die Befehls-Opcodes.

Siehe PeDa. Wenn du das Ding Compiler nennst, kommt es zu 
Verwechslungen.
Gast #3431559
Lesenswert?
• ▲
▼
Hat sich erledigt, hatte es in geistiger abwesendheit mit MOV versucht 
klar, dass das nicht geht.... Danke an alle beteiligten, hätte  wohl 
noch ne weile gedauert, bis ich durch das brett geschaut hätte.... :D :D

mfg Amper

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.