Problem mit AD Wandler + LEDs

OP #2775871
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren