anh cho em hỏi về timer0 của pic16f887. em chưa rõ hàm ngắt timer. và nếu em muốn đèn sáng khoảng 5s rồi ngừng thì em phải tính toán thế nào ạ. em cảm ơn anh.
#include <stdio.h>
#include <stdlib.h>
#include <pic16f887.h>
#include <htc.h>
__CONFIG(FOSC_HS & WDTE_ON & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_ON & IESO_ON & FCMEN_ON & LVP_ON);
__CONFIG(BOR4V_BOR40V & WRT_OFF);
#define _XTAL_FREQ 20000000
void Initialize(void)
{
TRISB0 = 0; // B0 là output
ANSEL = ANSELH = 0; // Enable digital buffer
RB0 = 0; // B0 mức thấp
T0CS = 0; // T0 sử dụng xung nội
PSA = 0; // Sử dụng Prescaler
PS0 = PS1 = PS2 = 0; // Prescaller là 1:2
T0IF = 0; // Xóa cờ ngắt T0
T0IE = 1; // Ngắt T0 On
GIE = 1; // Enable ngắt toàn cục
}
// Hàm ngắt
void interrupt my_isr(void)
{
if (T0IE && T0IF)
{
GIE=1; // Bật ngắt toàn cục
T0IE = 1; // Bật ngắt timer 0
}
}
void main()
{
Initialize(); // Khởi tạo
while(1)
{
}
}