PDA

View Full Version : sửa lỗi timer0 giúp mình


hauceuit
20-04-2013, 09:14 PM
Mình muốn dùng interrupt timer0 để tạo delay 1 giây , sau 1 giây thì sẽ đảo port RB1,nhưng mình gặp vấn đề ở chỗ dường như nó không ngắt sau 1 giây, mình cũng ko hiểu code mình sai ở đâu nữa , mong các bạn xem giúp
#include<htc.h>
__CONFIG(XT & WDTDIS & PWRTEN & UNPROTECT & LVPDIS & DEBUGDIS);
#define _XTAL_FREQ 4000000
void init_port()
{
//ANSEL=0;
//ANSELH=0;
TRISB1=0;
RB1=0;
}
void init_timer()
{
T0CS=0;

PSA=0;

PS2=1;
PS1=1;
PS0=1;

TMR0=0;
}
void main()
{
init_port();
init_timer();
GIE=1;
T0IF=0;
T0IE=1;
while(1){}
}
void interrupt isr()
{
int unsigned count=0;
if(T0IF)
{
++count;
if(count>=15)
{RB1^=1;count=0;}
T0IF=0;
TMR0=0;
}
}
nếu không dùng biến count thì có thể ngắt được, nhưng mình muốn nó thực hiện sau 1 giây , và các bạn cho mình hỏi lun tại sao mình dùng dùng 2 thanh ghi ANSEL và ANSELH thì nó báo lỗi undefine zay

lynette.phi
02-05-2013, 11:10 AM
hình như hitech C của bạn là bản cũ thì phải.
phần __CONFIG thấy lạ lạ.
2 thanh ghi ANSEL và ANSELH thì phải xem có trong file pic*****.h không. Nó nằm ở thư mục
C:\Program Files\HI-TECH Software\PICC\9.83\include