Trang chủ Chưa phân loại(MODE Normal) Tạo Thời Gian Delay Sử Dụng Timer() Thay Hàm Ngắt Trong Timer

(MODE Normal) Tạo Thời Gian Delay Sử Dụng Timer() Thay Hàm Ngắt Trong Timer

bởi Admin
12 lượt xem 1 Phút đọc

Tạo thời gian delay sử dụng timer()

1. Cài đặt giá trị cho  thanh ghi TCNT0 (Cách tính TCNT0)

2. Cài đặt Mode Normal và lựa chọn tần số chia sử dụng thanh ghi TCCR0

Ngay sau khi  giá trị được chọn thì bộ timer/counter bắt đầu đếm. Sau mỗi xung clock, giá trị của thanh ghi TCNT0 tăng một giá trị.

banner

3. Timer liên tục đếm, vì vậy cần phải giám sát thời gian tràn timer qua việc kiểm soát cờ tràn timer 0 (TOV0). Nếu bit này có giá trị 1 thì có nghĩa là timer 0 đã tràn.

4. Tắt timer bằng cách ghi giá trị 0 tới thanh ghi TCCR0, khi đó nguồn xung clock sẽ được ngắt ra khỏi timer/counter

5. Xóa cờ TOV0 bằng cách ghi giá trị 1 tới bit này.

Sơ đồ

Code

#include <mega16.h>
void delay()
{
TCNT0 = 177; //10ms
TCCR0 =  (1<<CS00)|(1<<CS02); //precaler 1024
while ((TIFR&0x01)==0);
TCCR0 = 0;
TIFR = 0x01;
}

void main(void)
{
  DDRA=0xff; //out
  while (1)
  {
      PORTA=0xff;
      delay(); 
      PORTA=0x00;
      delay();  
  }
}

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.