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

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

کد:
#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); } }
دیدگاه