Mình cũng dùng timer1 để tạo trễ nhưng không chạy được như ý:
#include <p30f4011.h>
_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF);
void init_port(){
TRISB = 0x00;
}
void init_timer1(){
PR1 = 0xff;
TMR1 = 0;
T1CONbits.TCKPS = 1;
T1CONbits.TON = 1;
}
int main(){
init_port();
init_timer1();
while(1){
_LATB1 = 1;
while (!T1CONbits.TSIDL);
T1CONbits.TSIDL = 0;
_LATB1 = 0;
while (!T1CONbits.TSIDL);
T1CONbits.TSIDL = 0;
}
}
Khi chạy thì pinb1 luôn ở mức cao. Mình không hiểu tại sao. Mong các bạn chỉ giúp.
|