سلام
من مدار زیر رو بستم و یه عدد هایی هم نشون میده ولی مقدازش اصلا ثابت نیست و بالا پایین میشه.....علتش چیه؟؟؟؟

من مدار زیر رو بستم و یه عدد هایی هم نشون میده ولی مقدازش اصلا ثابت نیست و بالا پایین میشه.....علتش چیه؟؟؟؟

کد:
#include <mega16.h>
#include <delay.h>
#include <stdlib.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x1b
#endasm
float timer=0,t;
char str[16];
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void){timer++;}
void main(void)
{
DDRB=0x01;
PORTB=0x00;
TCCR0=0x00;// Clock value: 1 MHz--Mode: Normal---Clock source: System Clock
TCNT0=0;//مقدار دهی اولیه
TIMSK=0x01; //فعال کردن وقفه تطبیق مقایسه ای تایمر/کانتر صفر
lcd_init(16);
lcd_putsf("ready");delay_ms(1000);lcd_clear();
#asm("sei") // Global enable interrupts
while (1)
{
//ارسال یه پالس به پایه تریگ
PORTB.0=1; delay_us(20); PORTB.0=0;
while(PINB.1==0); TCCR0=0X02; while(PINB.1==1);
t=(TCNT0+timer*256)/58; TCNT0=0; timer=0;
lcd_gotoxy(0,0); lcd_puts(" "); lcd_gotoxy(0,0);
ftoa(t,2,str); lcd_puts(str); delay_ms(1000);
}
}



دیدگاه