Gast
#2858799
Hallo zusammen!
Kann mir jemand sagen, warum der Spannungswert meines ADC`s nicht
richtig berechnet wird?
Benutze eine 10bit ADC!
void get_adc_data(void)
{
int i;
unsigned int Vref = 5000; // 1/1000V (mV)
unsigned int max_voltage = 2000; // mV
unsigned long int v_in_ADC;
unsigned long int sum;
unsigned long int average_ADC;
sum=0;
average_ADC=0;
for(i=0; i<32; i++)
{
ADCSRA |=(1<<ADSC);//ADC_starting_conversation
while( ADCSRA & (1<<ADSC)); //waiting_for_conversation_end
sum = sum+ADCW;
}
average_ADC = (sum/32);
v_in_ADC = ((average_ADC * Vref)/1024); //result in mV
DAC = average_ADC;
DACON |= (1<<DALA)|(1<<DAOE);(1<<DAEN); //DAC_starting_conversation
if(v_in_ADC <= max_voltage)
{
PCTL2 |= (1<<PCCYC2)|(1<<PRUN2); // PWM_Output_enable
}
else
{
PCTL2 &= (0<<PCCYC2)|(0<<PRUN2); // PWM_Output_disable
}
}
Bin über jede Hilfe dankbar!