mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny13 ADC freerunning


Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
im Augenblick versuche ich mich gerade in den ADC eines Tiny13 
einzuarbeiten.
Ich habe da mal ein kleines Programm geschrieben, das eine free running 
ADC macht, und den Wert als Comparewert für einen CTC-Timer benutzt, der 
dann eine LED blinkend steuert.
Als Hardware: Poti an PB3 und LED an PB0.
Der Vergleichswert für die ADC soll VCC sein.
Leider will der Code nicht so richtig.
#include <avr/io.h>        
  
#include <avr/interrupt.h>
//Master-freq = 128kHz

ISR(TIM0_COMPA_vect){
PORTB = PORTB ^ (1<<PB0); //Togglen des Pins
OCR0A = ADCH;//Wert vom ADC übernehmen
}

void init(){
TCCR0A = (1<<WGM01); //Count to Compare Modus
TCCR0B =  (1<<CS02); //Teiler 1024 //Bleiben noch 125Hz
OCR0A = 100;//Zweiter Teiler 25 //Bleiben noch 5Hz
TIMSK0 = (1<<OCIE0A);//Interrupt setzen
ADCSRA = (1<<ADEN) | (1<<ADSC) |(1<<ADATE); //ADC einschalten, aktivieren und auf Free-Running schalten
ADMUX = (1<<MUX0) | (1<<MUX1);//ADMUX auf PORTB 3
DDRB = (1<<PB0);//PORTB0 als Ausgang
sei();//Interrupts einschalten
}

int main(void){
  init();
  while(1){
  }
}
Die LED geht an und bleibt an, egal, wie ich am Poti drehe.
Kann mir jemand sagen, wo ich den Fehler gemacht habe?
Mit freundlichen Grüßen,
Valentin Buck

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du ADLAR nicht gesetzt hast, kriegst du in ADCH die Werte 0, 1, 2, 3 
je nach Potistellung. Ich denke nicht, dass du das groß an der 
Blinkfrequenz der LED sehen wirst.

Die ADC Einstellung hab ich jetzt nicht groß kontrolliert.

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh, jetzt funktionierts!
Danke!!!
Valentin Buck

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.