این برنامه یک سنسور smtهست که از وقفه خارجی صفر وتایمر 1 استفاده کرده از کتاب ره افروز اما برنامش گنگه وجواب هم نمیده میشه یه توضیحی دربارش کلی بدین.در مورد تایمرش.درمورد محاسبه زمان وظیفه
float T1,T2;
bit edge=0;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
if(edge)
{
T2=TCNT1;
TCNT1=0;
MCUCR=0x02;
edge=0;
}else
{
T1=TCNT1;
TCNT1=0;
MCUCR=0x03;
edge=1;
}
}
void main(void)
{
// Declare your local variables here
float dc;
float t;
char strt[16],str[8];
while (1)
{
// Place your code here
delay_ms(1000);
dc=T1/(T1+T2);
t=(dc-0.32)/0.0047;
lcd_clear();
//ftoa(dc,2,str);
ftoa(t,2,str);
sprintf(strt,"%s \XDF C",str);
//lcd_putsf("temp is:"
;
lcd_puts(str);
//lcd_puts(str);
};
float T1,T2;
bit edge=0;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
if(edge)
{
T2=TCNT1;
TCNT1=0;
MCUCR=0x02;
edge=0;
}else
{
T1=TCNT1;
TCNT1=0;
MCUCR=0x03;
edge=1;
}
}
void main(void)
{
// Declare your local variables here
float dc;
float t;
char strt[16],str[8];
while (1)
{
// Place your code here
delay_ms(1000);
dc=T1/(T1+T2);
t=(dc-0.32)/0.0047;
lcd_clear();
//ftoa(dc,2,str);
ftoa(t,2,str);
sprintf(strt,"%s \XDF C",str);
//lcd_putsf("temp is:"

lcd_puts(str);
//lcd_puts(str);
};
دیدگاه