PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler ADW ???



ProgDom
10.07.2005, 22:31
Hallo,
ich arbeite seit einiger Zeit mit dem ADW an PORTC PIN0 meines Atmegas. Ich habe bis jetzt leider erst wenige Informationen zum ADW mit Assembler gefunden und das Datenblatt ist mir meistens nicht so aufschulussreich. Hier einmal der relevante Codeteil:

in temp3, ADCH

out PORTD, temp3
rcall delay330ms
rcall lcd_clear


ldi r16, 0b00100000
out ADMUX, r16
sbi ADCSRA, ADSC
Dieser Teil wird im Prinzip immer wiederholt, sodass an PORTD der Wert anliegt.
Meine Frage ist, wie ich denn jetzt den ADW an PORTC, PIN1 ansprechen kann. Meines wissens ist der PIN doch auch als ADW zu benutzen (Atmega8) oder täusche ich mich da ? Wie kann ich von dem denn den Wert abfragen ?

Ich bin sehr dankbar für Antworten
**************
MFG
ProgDom

izaseba
10.07.2005, 23:04
Hallo,
Ja der ganze Port C ist als ADC benutzbar (mit ausnahme von RESET) :-)
Schau Dir die letzten 3 Zeilen in Deinem Code an, na ja bis auf die ganz letzte.
Wenn Du den ADMUX mit diesen Werten lädst, benutzt Du immer den ADC0.
Die letzten 4 Bits sind relevant, damit schaltest Du den Multiplexer um.
Suche danach in dem Dattenblatt und dann kommt es Dir wie Schuppen aus den Haaren.

Wenn Du trotzdem nicht weiterkommst, kannst Du nochmal fragen, dann erkläre ich Dir das genauer.

Gruß Sebastian

ProgDom
11.07.2005, 10:29
Danke, ich habs gefunden. Sind aber dir ersten vier Bits ^^ ;)

*********
MFG
ProgDom

izaseba
11.07.2005, 20:59
Sind aber dir ersten vier Bits ^^ Zwinkern

Ja, es kommt drauf an wieman guckt :-b
bits 0,1,2,3, oder 0b00000000

Gruß Sebastian