Bài đăng

Đang hiển thị bài đăng từ Tháng 9, 2018

Bài 5: Ngắt Timer 1

Hình ảnh
Timer rất quan trọng trong kĩ thuật lập trình, nó có thể thay thế hàm main(), tạo khoảng thời gian định thời mà không cần dùng hàm delay(). Ứng dụng tối quan trọng của Timer đó là ngắt, ta có thể tạo ra một khoảng thời gian mong muốn để thực hiện một chuỗi hàm trong ngắt.. Timer1 của Dspic 33fj32mc202 là timer 16 bit Xét bài toán: Dùng ngắt timer 1 để tạo bật tắt Led đơn với chu kì 0,5s Tính toán: Giả sử ta dùng tần số dao động của chip là Fosc = 40MHz  => Fcy = 20MHz Ta sử dụng bộ chia tần cho timer là 1:256 Ta có: 0.5 = PR1 * 256 * 1/20.000.000  Suy ra:  PR1 = 0,5*20.000.000/256 = 39062. Đây chính là giá trị  hẹn giờ Timer cần đặt Thực hiện: ta chọn tần số dao động là 40MHz: #include <p33fj32mc202.h> // Select Internal FRC at POR _FOSCSEL(FNOSC_FRC);      //su dung dao động nội 7.37MHz // Enable Clock Switching and Configure _FOSC(FCKSM_CSECMD & OSCIOFNC_OFF);  //disable WDT int main() {   // Configure PLL p...