Problem mit AD Wandler + LEDs

OP #2775871
Hi!

Kann mir vielleicht jemand helfen, ich versuche ein Programm zum Laufen 
zu bringen, aber es klappt irgendwie nicht.

Ich habe ein Musterprogramm mit AD Wandler gefunden, dieses Programm ist 
wie analoges Voltmeter, wenn am Port C am Pin 0 Spanung fließt, dann 
sollten 3 LEDs am Port B an PINs 0, 1 und 2 leucht. Zuerst grüne LED und 
wenn man die Spanung mit Poti regelt, dann sollten weitere LEDs 
aufleuchten.

Ich benutze das MyAVRboard MKII. Alles richtig angeschlossen. Das ganze 
läuft mit internem Quarz, ich habe nichts an Fuses usw. geändert.

Und hier das Programm:
1
#define   F_CPU   1000000
2
#include <avr/io.h>
3

4
int main()
5
{
6
  int sample,i,value;  // Variablen definitionn
7
  DDRB=0xFF;   // PORTB als Ausgabeport
8
  ADMUX=0x00;  // ADC Ref auf Avcc, PC0 gewählt, normale Formatierung
9
  ADCSRA=0x80; // ADC eingeschaltet, kein Prescale  
10
  // Endlosschleife zur kontinuierlichen Auswertung der Eingangsspannung (am ADC)
11
  while(1)
12
  {
13
    sample=0;  // setzt den Samplewert auf 0
14
    // Schleife zum Sammeln von 32 Meßwerten
15
    for(i=0;i<32;i++)  
16
    {
17
      ADCSRA=0b01000000;    // single conversion mode ein
18
      while(ADCSRA & (1<<ADSC));  //warten bis konvertierung abgeschlosen
19
      sample+=ADCW;  // aufsummierung der samplewerte
20
    }
21
    value=sample/32;  // Aritmethisches Mittel der Samplewerte 
22
    
23
       
24
             
25
    // Auswertung der Meßdaten
26
    if (value<300)  // erste Grenze 
27
      PORTB=0x04;  // schaltet grüne LED ein
28
    else if (value>=300 && value<600)  // zweite Grenze 
29
      PORTB=0x02;  // schaltet gelbe LED ein
30
    else
31
    {  
32
      PORTB=0x01;  // schaltet rote LED ein
33

34

35
    }
36
  }
37
}

Bei mir leuchtet immer die erste grüne LED, egal ob ich jetzt Poti drehe 
oder nicht, ich kann am PC0 Spanung messen, also die kommt an. Es wäre 
sehr nett, wenn mir jemand erklährt, was mache ich falsch bzw. wie 
funktioniert es nicht.

Gruss, venart

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.