Hi friends i have to convert analog voltage and read the conversion value on the output port through digiview,
i have written the code but i think its not working can any one help me out
i am giving dc voltage of 2v as input to adc pin.
here is the code
#include <avr/io.h>
#include <avr/iom128.h>
#include <avr/signal.h>
#include <avr/delay.h>
unsigned char data[];
unsigned char counter;
unsigned char i;
void data_send(void);
void init(void);
void delay_loop(unsigned char);
#define adc_data;
/* ADC interrupt service routine*/
SIGNAL(SIG_ADC)
{
adc_data=((2*256)/5)
data[0]=adc_data;
//data[0]=ADCH;
data_send(); // send packet data
ADCSRA= 0x00; // disable ADC
}
void delay_loop1(unsigned long us)
{for(;us>0;us--)
{asm("nop");}
}
void init(void)
{
PORTA=0xFF;
ADMUX= 0xE0; // Vref (1.1v) internal , channel pB3 of ADC
ADCSRA= 0xC7; // enable ADC ; start conv.
counter=0; // initial value
}
void data_send(void)
{
for(i=0;i<8;i++)
{
if(data[0] & (01<<i))
{ PORTA= 0X40;
delay_loop1(1000000);
}
else
{
PORTA = 0x00;
delay_loop1(1000000);
}
}
}
void main()
{
init();
ADMUX= 0xE0; // Vref (1.1v) internal , channel pB3 of ADC
ADCSRA= 0xEF; // enable ADC ; start conv.
sei(); // interrupt enable
while(1);
}
i have written the code but i think its not working can any one help me out
i am giving dc voltage of 2v as input to adc pin.
here is the code
#include <avr/io.h>
#include <avr/iom128.h>
#include <avr/signal.h>
#include <avr/delay.h>
unsigned char data[];
unsigned char counter;
unsigned char i;
void data_send(void);
void init(void);
void delay_loop(unsigned char);
#define adc_data;
/* ADC interrupt service routine*/
SIGNAL(SIG_ADC)
{
adc_data=((2*256)/5)
data[0]=adc_data;
//data[0]=ADCH;
data_send(); // send packet data
ADCSRA= 0x00; // disable ADC
}
void delay_loop1(unsigned long us)
{for(;us>0;us--)
{asm("nop");}
}
void init(void)
{
PORTA=0xFF;
ADMUX= 0xE0; // Vref (1.1v) internal , channel pB3 of ADC
ADCSRA= 0xC7; // enable ADC ; start conv.
counter=0; // initial value
}
void data_send(void)
{
for(i=0;i<8;i++)
{
if(data[0] & (01<<i))
{ PORTA= 0X40;
delay_loop1(1000000);
}
else
{
PORTA = 0x00;
delay_loop1(1000000);
}
}
}
void main()
{
init();
ADMUX= 0xE0; // Vref (1.1v) internal , channel pB3 of ADC
ADCSRA= 0xEF; // enable ADC ; start conv.
sei(); // interrupt enable
while(1);
}