ATmega8535 AD WANDLER

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 15 7 2026  17:26:50      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
ATmega8535 AD WANDLER

    







BID = 268291

MaleYAK

Gerade angekommen


Beiträge: 6
 

  



Hallo zusammen,

Ich versuche seit einiger Zeit, den AD Wandler zum Laufen zu bekommen.
Ein einem Pin des A Ports ist ein Drucksensor angeschlossen, sobald ich den Atmel starte wird nur einmal eine AD Konvertierung durchgeführt, obwohl die routine sich in einer Schleife befindet. Ich muss reset ausführen damit die Konvertierung erneut ausgeführt wird also wieder nur einmal. Es ist so als ob der AD Wandler nach der ersten konvertierung abgeschaltet wird. Die Flags sind richtig gesetzt... Der MC ist in Ordnung, da er andere aufgaben weiter bearbeitet.

ich benutze folgenden Code.

int read_adc(char channel)
{
int result = 0;
DDRA &= ~ (1<<channel); // Pin als input
PORTA &= ~ (1<<channel); // Alle Pullups aus.
ADMUX = 0xC0; // interne Refernzspannung, rechts Ausrichtung
ADMUX |= channel; // Kanal wählen
asm("nop"); //kurze Pause
ADCSRA=(1<<ADPS2)+(1<<ADPS1)+(1<<ADPS0)+(1<<ADEN); //Prescale Faktor, ADC an
asm("nop");
ADCSRA |= (1 << ADSC); // Beginne mit der Konvertierung
while ( (ADCSRA & (1<<ADSC)) != 0){} //Warten bis konvertierung beendet
asm("nop");
result= ADCL; // Ergebnis die letzten 8 BIT
return result;
}

Diese Funktion wird in einem Loop ausgeführt. Trotzdem wird der AD Wandler nur einmal eingeschaltet. Auch eine Löschung der Interrupts nach dieser funktion brachte keinen Erfolg.

Wo mache ich den Fehler??

Für jede Hilfe wäre ich Dankbar.

BID = 268295

photonic

Schreibmaschine



Beiträge: 1301
Wohnort: Zürich, Schweiz

 

  



Zitat :

Der MC ist in Ordnung, da er andere aufgaben weiter bearbeitet




Diese Annahme musst du vergessen. Es ist kein Problem einen Teil des Controllers kaputtzumachen ohen das etwas anderes davon beeinträchtigt wird. Diesen Fall hatte ich schon zwei mal, jedoch noch nicht mit dem ADC. Funktioniert er denn im auto-trigger-mode?

Ich kann auf den ersten blick auch nichts Falsches erkennen, aber wenn du 100% sicher bist das alles stimmt, probiere mal einen frischen Controller wenn du gerade einen da hast.


BID = 268297

MaleYAK

Gerade angekommen


Beiträge: 6


Danke Hat sich erledigt.

Der Fehler lag an dem Auslesen des Registers.

Der Register ADCH und ADCL muss komplett ausgelesen werden, damit er beim nächsten mal beschrieben werden kann.
Liest man nur ein Teil aus, bleibt er konstant auf dem alten wert und ein neuer wert kann nicht in den register geschoben werden.

Lösung:
...
result = ADCW;
...

jetzt Läuft der MC einwandfrei.

Irgendwie habe ich das in dem Datenblatt nicht gefunden...
Wieso das so ist keine Ahnung. Man geht davon aus das der Register ständig neu beschrieben wird nach einer Konvertierung.

Nachmals Danke.


BID = 268482

photonic

Schreibmaschine



Beiträge: 1301
Wohnort: Zürich, Schweiz


ich wäre auch davon ausgegangen und hätte den selben Fehler gemacht wenn mich nur die letzten 8 bit interessiert hätten. Im Datenblatt steht nicht wirklich etwas davon. Wahrscheinlich gehen die davon aus dass man sowieso immer die Daten aus dem ganzen Register ausliest.


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag       heute wurden bisher 3 Beiträge verfasst
© x sparkkelsputz        Besucher : 192387089   Heute : 2976    Gestern : 4548    Online : 627        15.7.2026    17:26
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.020112991333