TÌnh hình là em mới bập bọe AVR được chút ít...mà bây giờ thầy đã ốp lun bài tập lớn ĐẾM SẢN PHẨM HIỂN THỊ LÊN LCD DÙNG CẢM BIẾN HỒNG NGOẠI . Em đang học quen codevision nên dùng luôn ..
nhưng sao nghĩ mãi cũng chả thông được , em mới đọc được phần ngắt ngoài và timer nên đôi lúc lập trình còn chưa thạo ...đây là bài code của em nhưng chưa chạy được vậy mong các tiền bối đọc và chỉ giáo giúp em..tks!


#include <mega16.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
volatile int dem=0;

//chuong trinh ngat
interrupt [TIM1_COMPA] void timer1_compa_isr(void){
dem++;
if(dem==999){
dem=0;
}
PORTC=dem;

}

//chuong trinh tao tre



//chuong trinh hien thi lcd
void lcd_putnum(unsigned char so){
unsigned char i;
unsigned char a,b,c;
a=so/100;
b=(so-100*a)/10;
c=(so-100*a-10*b)/10;
lcd_gotoxy(6,1);

for(i=0;i<999;i++)
{
lcd_putchar(a+48);
lcd_putchar(b+48);
lcd_putchar(c+48);
}
}
void main(void)
{
DDRC=0xff;
DDRD=0xff;
TCCR1A=0;
TCCR1B=6;
OCR1A=4;
TIMSK=0x10;
#asm("sei");




// hien thi lcd
lcd_init(16);
lcd_gotoxy(0,0);
lcd_clear();
lcd_putsf("GIA TRI DEM");
lcd_gotoxy(6,1);




while (1)
{
// Place your code here
if(PIND.3==0){
PORTC=dem;
}

};
}
các bác giúp em phát hiện lỗi và chỉ giáo giúp em về bài code MẠCH ĐẾM SP..em gà các bác đừng chửi nhá hi`