Thông tin tài liệu:
Sử dụng bộ định thời là nhu cầu của nhiều lập trình viên. Thông thường mỗi loại vi điều khiển đều có bộ định thời. Hôm nay VAGAM xin giới thiệu tới các bạn bài viết về cách dùng Timer trong vi điều khiển AVR. Đặc tính- Bao gồm các bộ timer 8bit 16 bit, thường có từ 3 – 4 bộ Timer - Có các kênh PWM (từ 4 đến 8 kênh tuỳ loại ) Bao gồm nhiều chế độ ngắt và PWM … Có thể là một kênh đếm riêng biệt - Tự động xoá Timer trong chế...
Nội dung trích xuất từ tài liệu:
Tự học AVR - phần 4 - Cách dùng Timer trong vi điều khiển AVR Tự học AVR - phần 4AVR - Cách dùng Timer trong vi điều khiển AVRSử dụng bộ định thời là nhu cầu của nhiều lập trình viên. Thông thường mỗiloại vi điều khiển đều có bộ định thời. Hôm nay VAGAM xin giới thiệu tớicác bạn bài viết về cách dùng Timer trong vi điều khiển AVR.Đặc tính- Bao gồm các bộ timer 8bit 16 bit, thường có từ 3 – 4 bộ Timer- Có các kênh PWM (từ 4 đến 8 kênh tuỳ loại )- Bao gồm nhiều chế độ ngắt và PWM …- Có thể là một kênh đếm riêng biệt- Tự động xoá Timer trong chế độ so sánh(tự động nạp lại)- Có chế độ PWM- Tạo ra tần số- Đếm các dự kiện ngắt ngoài- Tạo ra các ngắt tràn và ngắt so sánh....Các chế độ hoạt động của timerChế Độ Thông Thường:Đây là chế độ hoạt động đơn giản nhất của Timer .Bộ đếm sẽ liên tục đếmtăng lên cho đến khi vượt quá giá trị lớn nhất TOP và sau đó sẽ được khởiđộng lại tại giá trị Bottom.Trong các hoạt động thông thường thì cờ tràn sẽđược thiết lập khi giá trị trong Timer đạt giá trị không và không bị xoáđi.Tuy nhiên nếu mà ngắt tràn được chấp nhận thì cờ ngắt sẽ tự động bị xoákhi ngắt được thực hiện.Giá trị trong Timer có thể được viết vào bất cứ lúcnàoChế Độ So Sánh (CTC):Đấy là chế độ mà giá trị trong Timer luôn được so sánh với giá trị trongthanh ghi ORC .Khi giá trị trong Timer bằng giá trị trong thanh ghi ORC thìgiá trị trong Timer sẽ bị xoá đi.Giá trị trong ORC đóng vai trò là giá trịTOP cho bộ đếm.Chế độ này cũng cho phép tạo ra tần số so sánh ở đầura.Tuy nhiên trong chế độ này nếu giá trị mới ghi vào thanh ghi ORC mànhỏ hơn giá trị tức thời của bộ đếm thì thì 1 so sánh sẽ bị lỡ, khi đó bộ đếmsẽ đếm đến giá trị lớn nhất sau đó rơi xuống giá trị 0 trước khi so sánh tiếptheo xuất hiện.Sơ đồ thời gian của chế độ CTCChế Độ Fast PWM:Cho phép tạo ra sóng với tần số cao.Sự khác biệt cơ bản giữa Fast PWMvới các loại PWM khác là nó chỉ sử dụng 1 sườn dốc.Bộ đếm sẽ đếm từBottom đến Max sau đó khởi động lại từ bottom. Trong chế độ không đảođầu ra của chân so sánh OCx sẽ bi xoá khi có phép toán so sánh giữaTCNTx và thanh ghi ORC là bằng nhau. Và sẽ được sét lên 1 khi giá trị đạtBottom. Trong chế độ đảo ,đầu ra đảo sẽ được set lên 1 khi sự so sánh giữathanh ghi ORC và giá trị trong Timer bằng nhau và sẽ bị xoá khi giá trị đạtBottom.Trong cả hai trường hơp này tần số của chế đô Fast PWM đều gấpđôi so với chế độ phase correct PWM sử dụng hai sườn dốcVới tần số cao này chế độ độ Fast PWM rất tốt cho các ứng dụng như ADChay chỉnh lưu.Ngoài ra với tần số cao giúp làm giảm kích thước của thiết bịngoài như cuộn dây tụ từ đó giúp làm giảm toàn bộ chi phí cho hệ thốngSơ đồ dưới đây mô tả chu kỳ thời gian của chế độ:Biều đồ thời gian chế độ Fast PWMChế độ Phase correct PWM:Chế độ này hoạt động dựa trên hai sườn lên xuống.Bộ đếm sẽ đếm liên tụctừ giá trị BOTTOM đến giá trị MAX và sau đó từ giá trị MAX đến giá trịBOTTOM.Trong chế độ so sánh không đảo chân so sánh (OCx) sẽ bị xóakhi giá trị TCNTx bằng giá trị OCRx trong quá trình đếm lên và sẽ được setbằng 1 khi giá trị so sánh xuất hiện trong quá trình đếm xuống.Chế độ sosánh đảo thì các giá trị là ngược lại.Với hoạt động hai sườn xung này thìchế độ này không tạo ra được tần số nhỏ như chế độ một sườn xung .Nhưngdo tính cân đối của hai sườn xung thì nó tốt hơn cho điều khiển động cơChế độ phase correct PWM hoạt động cố định là 8 bít.Trong chế độ này bộđếm sẽ tăng cho đến khi đạt giá trị MAX ,khi đó nó sẽ đổi chiều đếm.Biểuđồ thời gian đây mô tả hoạt động của toàn bộ quá trình:Từ biểu đồ thời gian ta nhận thấy việc thay đổi tần số trong hoạt động củaphase correct PWM có thể thay thế bằng hai giá trị là MAX và BOTTOM.Nó linh hoạt hơn so với chế độ Fast PWM.Tần số có thể tính theo công thức như sau:f=fc/N*510Trong đó N tạo ra bởi bộ chia nó có các giá trị là:1,8,64,256 hoặc 1024Các thanh ghi trong bộ Timer/ Counter:Thanh ghi điều khiển - TCCRx:Bít 3,6 –WG00-WG01: Đây là các bít chọn chế độ trong Timer.Các giá trịđược mô tả trong bảng sau.Bảng chọn chế độ ...