ADC-Problem AT90CAN32

Gast #4440011
Lesenswert?

Könnte mir jemand helfen? Bin noch eine ziemliche Anfängerin.
Ich bringe den ADC einfach nicht zum laufen..
Am Pin kann ich die Spannung von 0-5V messen, will das ganze am 
LCD-Display anzeigen, doch der Wert bleibt ständig auf 0.

Ich kopiere hier mal den Code rein:


#define F_CPU 16000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include "converter.h"
#include "lcd.h"

#define Adc_0 PF0

uint8_t adc0_value=0;

int main(void)

{
  spi_init();
  lcd_init();

  DDRF|=~(1<<PF0); // ADC0 als Eingang definieren

//***************************************INIT_ADC*********************** 
************************************************************************ 
***************************

  ADMUX  |=(1<<REFS0);    // Voltage Reference: AVCC
  ADCSRA |= (1<<ADEN);    // set enable bit, ADC on
  ADCSRA |= (1<<ADIE);    // ADC interrupt enable
  ADCSRA |= (1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2);   //Prescaler -> Division 
Factor 128
  ADMUX  |= (1<<ADLAR);    // 10-bit to 8-bit resolution

  //ADMUX  |=(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(0<<MUX4); // set 
channel ADC0


   while(1)
    {
    ADCSRA |=(1<<ADSC);      // ADC start conversion
    dac2_write(1000);
    lcd_writestring("abcde",1,1);
    lcd_writebyte(adc0_value,7,1);

    lcd_writenumber( adc0_value,3,1,2);
    }
}



 ISR (ADC_vect)
 {
   adc0_value =ADCH;

 }

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