Trích:
Nguyên văn bởi littlephoc
mình muốn dùng timer1 để tạo ra xung 1ms , chip mình dùng là PIC18F2620, dùng thạch anh 8Hmz
OpenTimer1(TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_INT & T1_PS_1_8 &
T1_OSC1EN_OFF); //タイマ1の設定,8ビットモード,割込 使用
//////////////////////
void isr_low_handler(void)
{
if(PIR1bits.TMR1IF){ // タイマ1割り込み?
PIR1bits.TMR1IF=0; // タイマ1割り込みフラグを0にする
if(--cnt1 <=0){
cnt1=10;
LATAbits.LATA4=!LATAbits.LATA4;
}
Nhưng kết quả không ra như ý muốn, thời gian dài hơn và không chính xác.
Mong chỉ giùm mình cách tính với.
|
Bạn đang dùng C18 phải không? Thời gian dài hơn ở mức độ nào, 1 vài chu kỳ xung clock hay gấp đôi, gấp ba thời gian mong muốn?
Tôi sẽ đặt lệnh giảm biến cnt1 ra bên ngoài lệnh if trong đoạn code trên.
Thân,