sakender
Junior Member level 3
hi
i am working on project on adc
my code is in mickroC
unsigned int i;
//////////////////// SENDING DATA TO MODEM//////////////////////
void SEND_MDM(unsigned char *cmd)
{
unsigned char cmd_len,loop,dat;
cmd_len=strlen(cmd);
for(loop=0;loop<cmd_len
{
dat=*(cmd+loop++);
usart_write(dat);
}
usart_write(0x0d);
}
//////////////END/////////////////////////////
void main()
{
unsigned char AT[]="AT";
unsigned char ATGF[]="AT+CMGF=1";
unsigned char SMS_MASTER[]="AT+CMGS=03159000279";
float press,p_lev=0,lt,adc_value,chk;
short take, buffer;
char inter, deci,i;
char lit[10],p_lit[10];
ADCON1 = 0x80; // Configure analog inputs and Vref
TRISA = 0xFF; // PORTA is input
TRISB = 0x3F; // Pins RB7, RB6 are outputs
TRISD = 0; // PORTD is output
usart_init(9600);
//Spi_Init();
SEND_MDM(AT);
delay_ms(200);
SEND_MDM(ATGF);
delay_ms(200);
while(1)
{
//take = Spi_Read(buffer);
SEND_MDM(take);
adc_value = Adc_Read(2); // Get results of AD conversion
press = adc_value*0.005;
lt=((press)/5)*8;
sprintf(lit, "%2.3f", lt);
SEND_MDM(lit);
chk=lt-p_lev ;
if(chk>=1)
{
SEND_MDM(SMS_MASTER);
delay_ms(200);
sprintf(p_lit, "%2.2f", p_lev);
SEND_MDM(p_lit);
SEND_MDM(0x1A);
SEND_MDM("Check1");
delay_ms(200);
delay_ms(500);
delay_ms(500);
adc_value = Adc_Read(2); // Get results of AD conversion
press = adc_value*0.005;
lt=((press)/5)*8;
sprintf(lit, "%2.3f", lt);
SEND_MDM("Check2");
SEND_MDM(SMS_MASTER);
delay_ms(200);
SEND_MDM(lit);
SEND_MDM(0x1A);
SEND_MDM("Check3");
}
else
{
delay_ms(200);
p_lev=lt;
}
//CONFIG WDT=OFF;
//CLRWDT();
}
}
when i simulation in proteous the there is two problem
1)ADC conversion clock period is below 1.6 u sec i used 8MHZ clock
2.) that controller is reset by Watchdog timer
as attached in figure
i am working on project on adc
my code is in mickroC
unsigned int i;
//////////////////// SENDING DATA TO MODEM//////////////////////
void SEND_MDM(unsigned char *cmd)
{
unsigned char cmd_len,loop,dat;
cmd_len=strlen(cmd);
for(loop=0;loop<cmd_len
{
dat=*(cmd+loop++);
usart_write(dat);
}
usart_write(0x0d);
}
//////////////END/////////////////////////////
void main()
{
unsigned char AT[]="AT";
unsigned char ATGF[]="AT+CMGF=1";
unsigned char SMS_MASTER[]="AT+CMGS=03159000279";
float press,p_lev=0,lt,adc_value,chk;
short take, buffer;
char inter, deci,i;
char lit[10],p_lit[10];
ADCON1 = 0x80; // Configure analog inputs and Vref
TRISA = 0xFF; // PORTA is input
TRISB = 0x3F; // Pins RB7, RB6 are outputs
TRISD = 0; // PORTD is output
usart_init(9600);
//Spi_Init();
SEND_MDM(AT);
delay_ms(200);
SEND_MDM(ATGF);
delay_ms(200);
while(1)
{
//take = Spi_Read(buffer);
SEND_MDM(take);
adc_value = Adc_Read(2); // Get results of AD conversion
press = adc_value*0.005;
lt=((press)/5)*8;
sprintf(lit, "%2.3f", lt);
SEND_MDM(lit);
chk=lt-p_lev ;
if(chk>=1)
{
SEND_MDM(SMS_MASTER);
delay_ms(200);
sprintf(p_lit, "%2.2f", p_lev);
SEND_MDM(p_lit);
SEND_MDM(0x1A);
SEND_MDM("Check1");
delay_ms(200);
delay_ms(500);
delay_ms(500);
adc_value = Adc_Read(2); // Get results of AD conversion
press = adc_value*0.005;
lt=((press)/5)*8;
sprintf(lit, "%2.3f", lt);
SEND_MDM("Check2");
SEND_MDM(SMS_MASTER);
delay_ms(200);
SEND_MDM(lit);
SEND_MDM(0x1A);
SEND_MDM("Check3");
}
else
{
delay_ms(200);
p_lev=lt;
}
//CONFIG WDT=OFF;
//CLRWDT();
}
}
when i simulation in proteous the there is two problem
1)ADC conversion clock period is below 1.6 u sec i used 8MHZ clock
2.) that controller is reset by Watchdog timer
as attached in figure