d. Nhóm lệnh chuyền ựiều khiển:
3.3.5. Timer/Counter của AVR ATMEGA
AVR ATMEGA8535 cung cấp 3 Timer trong ựó có 2 timer/counter 8 bit T0 và T1 và 1 Timer 16 bit. Timer/Counter2 có thể lựa chọn tắn hiệu ựồng hồ từ nguồn dao ựộng ngoài. Nguồn dao ựộng ngoài tối ưu cho T2 là có tần số 32.768 MHz, nó có thể cho phép T2 hoạt ựộng như mạch ựồng hồ thời gian thực (RTC). T0,T1 lựa chọn tần số chia trước từ cùng một bộ chia tần 10 bit. T2 sử dụng bộ chia tần riêng. Những Timer/Counter này có thể hoạt ựộng như Timer với tắn hiệu ựồng hồ bên trong hoặc như những Counter với ựầu vào tắn hiệu bên ngoài.
Từ sơ ựồ của mạch chia tần dùng cho T2 ta thấy nguồn tắn hiệu cho bộ chia tần này là PKC2 mặc ựịnh nối với ựồng hồ của hệ thống(CK). để T2 hoạt ựộng như mạch RTC thì ta set bit AS2 trong thanh ghi ASSR, khi ựó bộ chia tần của T2 lấy xung clock ựể hoạt ựộng từ chân PC6 (TOSC1). Khi AS2=1 thì chân PC6 và PC7 ựược ngắt ra khỏi cổng C và ựược sử dụng ựể nối bộ dao ựộng riêng cho T2. Bộ dao ựộng này thường có tần số 32.768MHz.
8 bit-Timer/Counter 0:
Timer/Counter 0 8 bit có thể chọn tắn hiệu clock từ ựồng hồ hệ thống (CK), hay từ chân ngoài. Thanh ghi dùng ựể ựiều khiển T0 8 bit là TCCR0. Cờ báo tràn nằm trong thanh ghi cờ tràn TIFR. Việc cho phép và cấm ngắt ựối với T0 ựược tìm thấy trong thanh ghi TIMSK. Khi T0 ựược giữ nhịp từ bên ngoài, thời gian cực tiểu giữa hai lần xảy ra sự chuyển mức tắn hiệu ựồng hồ ắt nhất cũng phải bằng 1 chu kỳ xung ựồng hồ bên trong CPU. Tắn hiệu giữ nhịp bên ngoài ựược lấy mẫu theo sườn dương bằng xung ựồng hồ bên trong CPU. Bộ Timer/Counter0 8 bit thể hiện cả ựộ phân giải cao lẫn ựộ chắnh xác cao và luôn ưu tiên số chia tần số thấp hơn.
Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...42 16 bit-Timer/Counter 0:
Timer/Counter 16 bit có thể lựa chọn xung clock nguồn từ Ck hoặc từ chân bên ngoài. Các tắn hiệu ựiều khiển T1 nằm trong thanh ghi TCCR1A và TCCR1B, các trạng thái khác cũng tìm thấy trong hai thanh ghi này như: cờ tràn, compare match và capture event. Việc cho phép và cấm ngắt nằm trong thanh ghi interupt Mask register TIMSK. Khi T1 ựược giữ nhịp từ bên ngoài, tắn hiệu bên ngoài ựược ựồng bộ với tần số dao ựộng của CPU, thời gian cực tiểu giữa hai lần xy ra sự chuyển mức tắn hiệu ựồng hồ ắt nhất cũng phi bằng 1 chu kỳ xung ựồng hồ bên trong CPU. Tắn hiệu giữ nhịp bên ngoài ựược lấy mẫu theo sườn dưng bằng xung ựồng hồ bên trong CPU. Bộ Timer/Counter1 16 bit thể hiện cả ựộ phân giải cao lẫn ựộ chắnh xác cao và luôn ưu tiên số chia tần số thấp hơn.
Timer/Counter1 16 bit còn có chức năng /output compare/ sử dụng thanh ghi output compare register 1A và B (OCR1A ,OCR1B). Dữ liệu nguồn nằm trong thanh ghi này ựược so sánh với nội dung của T1. T1 cũng có thể sử dụng các chế ựộ ựiều chế ựộ rộng xung 8,9,10 bit. Chức năng Input capture cho phép lấy nội dung của T1 vào thanh ghi ICR1. Thanh ghi ựiều khiển timer/counter 1 (TCCR1B) sẽ quy ựịnh các sự kiện capture
8 bit-Timer/Counter 2:
Nguồn xung clock của T2 là PCK2 hay bộ chia tần riêng của T2. Việc ựiều khiển hoạt ựộng của T2 thông qua thanh ghi TCCR2. Cờ tràn và cờ compare match nằm trong thanh ghi trạng thái ngắt TIFR. Việc cho phép hay cấm ngắt thông qua thanh ghi TIMSK. Trong chế ựộ so sánh T2 dùng thanh ghi OCR2 làm nguồn dữ liệu ựể so sánh với nội dung của timer/counter. Timer/Counter 2 cũng có thể dùng ở chế ựộ ựiều chế ựộ rộng xung 8 bit.
Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...43