Muß ich einen Interrupt nehmen??

Gast #64614
Lesenswert?

Moin!

Also, folgendes Problem: ich möchte mit meinem 90s9535 mehrere
Analogeingänge einlesen.
Mit einem Funktioniert alles ganz gut. Nur sobald ich versuche einen
zweiten einzulesen klappt es nicht mehr. Ich habe schon in der
Codesammlung nachgesehen, aber nichts gefunden (oder überlesen). Kann
mir einer von euch helfen? Ich komme mit der Kanalumschaltung nicht
zurecht. Muß/kann ich da mit Interrups abreiten? Ich weiß es gibt einen
Interrupt wenn die AD-Wandlung erfolgt ist, aber ich bekomm das einfach
nicht gebacken. Habe erst Angefangen mich mit µC und Assembler zu
beschäftigen, also bin ich für jede Hilfe dankbar.

Gruß
Danny
Gast #64615
Lesenswert?

Hi,

beim Mega8 wird über das Register "ADMUX" die Kanalwahl über die Bits
0-3 getroffen.

in    r16,ADMUX
ori   r16(0<<MUX3|0<<MUX2|1<<MUX1|0<<MUX0)
out   ADMUX,r16

schaltet vom "0. Kanal" (ADC0) auf den "1. Kanal" (ADC1).

Bei Deinem Typ dürfte es änhlich sein --> Datenblatt!

Sebastian
Gast #64616
Lesenswert?

Das mit dem Kanal wählen ist beim 8535 auch so, nur wie bekomme ich die
Daten aus dem ADCL bzw. ADCH passend zum Kanal? Wie gesagt, ich weiß es
gibt einen Interrupt wenn Wandlung erfolg ist, weiß aber nicht wie ich
das auswerten kann...
Gast #64617
Lesenswert?

Hi Danny,

als Anhang ein kleines Testprogramm für den ADC des Mega8. Ohne
Interrupt!

Den mußt Du nicht verwenden. Gib' einfach den Befehl zu wandeln, warte
10ms oder so und lies dann ein. Und drandenken: Erst ADCH dann ADCL
auslesen.

Sebastian
Angehängte Dateien:
Gast #64618
Lesenswert?

Danke Sebastian!
Werde das mal testen. Gibt es eigentlich irgendwo eine Seite wo
Interrupts beschrieben sind? Habe wohl im Tutorial gelesen, ist mir
aber irgendwie zu hoch (im Augenblick zumindest).
Gast #64621
Lesenswert?

Hi
ich meine mal irgendwo ein Errata-Sheet gelesen zu haben,
wo drin stand, das man bei bestimmten Typen des 8535 den ADKanal
zweimal lesen muß, um den richtigen Wert zu erhalten.
Und tatsächlich, nur mit diesem Tip lief meine Schaltung dann sauber.
VG + Viel Spass
Marco

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren