سلام دوستان
وقت همگی بخیر ....
من یه پروژه ای دارم کار می کنم که با یه میکرو pic دما رو ارسال می کنیم ...
نحوه ی کار به اینصورت که اول میکرو منتظر می مونه تا توسط پورت سریال ادرس خودش و دریافت کنه(خوده میکرو slave هست) بعد دما رو بخونه و ارسال کنه
حالا مشکل :
مشکل اینه که مدار خوب کار می کنه ولی بعد از چند دقیقه کار دما با 4 درجه خطا (نسبت به دمایی که توسط یه سیستمه سنسور دیگه نمایش داده می شه ) نشون میده دوستان اگه می شه یه راهنمایی کنید حسابی ذهن مو مشغول کرده ....
اینم برنامه ش (خیلی سادست):
#include <16F688.h>
#device adc=10
#FUSES NOWDT, HS, NOMCLR, NOBROWNOUT
#use delay(clock=12000000)
//#use FIXED_IO( C_outputs=PIN_C5,PIN_C4,PIN_C3,PIN_C1 )
#use rs232(baud=9600,parity=N,xmit=PIN_C2,rcv=PIN_C0,bi ts=8,stream=PORT1,timeout=500)
char x;
int16 temp;
void main()
{
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_DIV_2);
while(TRUE)
{
x=getch();
if (x=='@')
{
delay_ms(50);
printf("x");
set_adc_channel(0);
temp=read_adc();
delay_ms(20);
temp=temp/2;
printf("%lu",temp);
}
}
}
با تشکر