Problem mit ADC beim ATTiny13

Gast #2131305
Lesenswert?
• ▲
▼
Hallo

Ich möchte eine ADC-Messung mit einem ATTiny13, ausgelöst durch einen 
Compare-Match durchführen, doch im Simulator von AVRStudio4 springe ich 
nie in die Interruptroutine des ADCs. Woran liegt das? Die 
Compare-Match-ISR wird wie gewünscht ausgeführt. Ich habe den ADC wie 
unten aufgeführt konfiguriert. Nehme an, dass ich nicht expliziet (z. B. 
in der Compare-Match-ISR) explizit eine ADC-Conversation starten muss, 
da die Trigger-Quelle des ADC der Interrupt des Compare-Matchs ist/sein 
sollte.
1
ADCSRB |=  (1 << ACME);     // Analog Comparator Multiplexer Enable
2
ADMUX |= (1 << MUX1);       // ADC-Eingang ist ADC2 (PB4)
3
ADMUX |= (1 << REFS0);      // interne Spannungsreferenz nutzen
4
// Timer/Counter Compare Match A triggert eine ADC conversation
5
ADCSRB |=  ((1 << ADTS1) | (1 << ADTS0));
6
ADCSRA |= (1 << ADATE);     // ADC Auto Trigger Enable
7
ADCSRA |= (1 << ADPS0);     // ADC-Prescaler auf 2 setzen
8
// ADC Conversion Complete Interrupt is activated
9
ADCSRA |= (1 << ADIE);
10
ADCSRA |=  (1 << ADEN);     // ADC enable

Thx, Markus
Gast #2131360
Lesenswert?
• ▲
▼
Hi

>ADCSRB |=  (1 << ACME);     // Analog Comparator Multiplexer Enable

Wozu soll das gut sein?

Datenblatt:

• Bit 6 – ACME: Analog Comparator Multiplexer Enable
When this bit is written logic one and the ADC is switched off (ADEN in
ADCSRA is zero), the ADC multiplexer selects the negative input to the
Analog Comparator.

MfG Spess
Gast #2131394
Lesenswert?
• ▲
▼
ohh, da hat sich was eingeschlichen, das gehört natürlich nicht zur 
ADC-Konfiguration, sondern an eine andere Stelle im Code. Habs leider 
immer noch nicht hingekriegt.
Als Ausweg kann ich mir vorstellen, dass ich in der Compare Match-ISR 
eine ADC-Convertierung im Code auslöse, aber dann verstehe ich die 
Trigger-Optionen des ADCs nicht. Nehme an, dass direkt nach (oder 
während) der Compare-Match-ISR eine Convertierung ausgelöst werden 
sollte und das Start-ADC-Conversion-Bit im Simulator (mindestens für 
eine Taktperiode) gesetzt sein sollte oder?
Kann ich im AVRStudio überhaupt den ADC korrekt simulieren? Die ADC-ISR 
müsste ja bei einem "ADC Conversion Complete"-Event ausgelöst werden und 
ein zu konvertierender analoger Spannungswert kann ja im Simulator auch 
nicht angegeben werden...
Gast #2131412
Lesenswert?
• ▲
▼
Hi

>Kann ich im AVRStudio überhaupt den ADC korrekt simulieren? Die ADC-ISR
>müsste ja bei einem "ADC Conversion Complete"-Event ausgelöst werden

Einfach mal ADIF in ADCSRA per Hand setzen.

MfG Spess

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.