Atmega32 AD Wandler

Gast #3828338
Lesenswert?
• ▲
▼
Hallo Leute,

und zwar benutze ich den Atmega 32 und möchte eine Spannung an der 
internen Referenzspannung vergleichen.
Das heißt wenn die gemessene Spannung größer als die Referenzspannung 
ist, soll PINB0 an und ausgehen.

Nur weiß ich nur nicht wie ich dem umgewandelten Digitalwert (wo ist er 
überhaupt?) weiterarbeiten Kann.

Vielen Dank für eure Hilfe

void main(void)

{
DDRB = 1 << PINB0; // Data Direction Register output for only Pin0 on 
Port B
ADCSRA = 1<< ADEN; // enable ADC
ADCSRA = 1<< ADIE; //interrupt

ADMUX = 1<<ADLAR;   // 8bit auswahl
ADCSRA = 1 << ADPS2; =//prescaler 1Mhz/50khz und 1mhz/200khz 
(datenblatt) = zwischen 20 und 5
sei();

while(1)
{
PORTB ^= 1 << PINB0; //xor (^) to toggle only pin 0 on Port B
_delay_ms(10);
Gast #3828348
Lesenswert?
• ▲
▼
Kral schrieb:
> Nur weiß ich nur nicht wie ich dem umgewandelten Digitalwert (wo ist er
> überhaupt?) weiterarbeiten Kann.

Der befände sich in ADCL/ADCH, bzw. ADCW. Da wird bei diesem Code 
allerdings nichts reinkommen, denn wenn der ADC laufen würde, so würde 
der uC dann resetten, wenn er die nicht vorhandene ISR aufrufen möchte.

Da's aber mehrere Absolutzuweisungen auf ein und dasselbe Register gibt, 
werden die vorhergehenden überschrieben. Da läuft also nichts, da der 
ADC nicht enabled ist.

Es gibt zuhauf funktionierende Beispiele für den ADC, hast Du Dir denn 
kein einziges angesehen?
Gast #3828354
Lesenswert?
• ▲
▼
>Das heißt wenn die gemessene Spannung größer als die Referenzspannung
>ist,

Na dann hast du hoffentlich einen Spannungsteiler vor dem ADC.
Die Referenzspannung stellt den höchsten Wert dar den der ADC
messen kann.
#3828376
Lesenswert?
• ▲
▼
MWS schrieb:
> Es gibt zuhauf funktionierende Beispiele für den ADC, hast Du Dir denn
> kein einziges angesehen?

holger schrieb:
> Na dann hast du hoffentlich einen Spannungsteiler vor dem ADC.
> Die Referenzspannung stellt den höchsten Wert dar den der ADC
> messen kann.

ihr habt beide Recht, nur warum ADC ?

hier bei der Aufgabe wäre doch der Analogcomperator angebrachter ?

Ich habe den zwar noch nie genutzt, aber bei der Anforderung springt 
mich der Analogkomperator doch an, wozu den ADC Wert wandeln und 
vergleichen wenn ich nur > feststellen will.

https://www.google.de/search?q=atmega32+comparator&client=firefox-a&rls=org.mozilla:de:official&channel=sb&biw=1280&bih=905&source=lnms&sa=X&ei=9S4wVNWXCYXzaoGCgfAI&ved=0CAUQ_AUoAA&dpr=1

http://winavr.scienceprog.com/avr-gcc-tutorial/avr-comparator-c-programming-example.html

http://www.mschrod.de/Elektronik/AVR/Atmega%20Allgemein/Analogkomparator/Analogkomparator.htm

http://www.tschallener.net/AVR/InterrupttechnikATmega32.pdf
Gast #3828423
Lesenswert?
• ▲
▼
Joachim B. schrieb:
> ihr habt beide Recht, nur warum ADC ?

Vielleicht weil der TE diesen durchaus verwendbaren Ansatz gewählt hat?

Der AC kann nur die Bandgap verwenden. Die höhere Referenzspannung wird 
zwar aus der Bandgap abgeleitet, kann aber zumindest nicht intern mit 
dem AC verbunden werden.

Wenn keine unmittelbare Reaktion wie über den AC gefordert ist, dann hat 
der Weg über den ADC den Vorteil, flexibler zu sein, die Triggerschwelle 
kann per Software justiert werden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.