Cần giúp PWM dÙNG timer 2 của Atmega8

kakaducsy

Kỹ sư
#1
chao mọi người,cho em hỏi cách tạo PWM bằng timer2 của atmega 8 với ạ,em muốn tạo với chu kì là 20ms,xung cao là 1ms,
em tính như sau:
Clock dùng 8Mhz,-->chọn clk/1024-->để có được 1ms thì nạp cho OCR2 là 1000us/(1024/8)=8 (là mức cao)
muốn có được 20ms thì nạp giá trị là 20000us/(1024/8)=156,nhưng khác với timer1 không có thanh ghi TCNT1 để nạp chu kì mà nó lấy luôn 255 tức là 33000us
Vậy phải làm sao,có cách nào để nó không đếm từ BOTTOM= 0 hay không,Xin mọi người giúp đỡ,
Tại em đang cần 3 ngõ ra tạo PWM
 

kuem0912

Kỹ sư
#2
chao mọi người,cho em hỏi cách tạo PWM bằng timer2 của atmega 8 với ạ,em muốn tạo với chu kì là 20ms,xung cao là 1ms,
em tính như sau:
Clock dùng 8Mhz,-->chọn clk/1024-->để có được 1ms thì nạp cho OCR2 là 1000us/(1024/8)=8 (là mức cao)
muốn có được 20ms thì nạp giá trị là 20000us/(1024/8)=156,nhưng khác với timer1 không có thanh ghi TCNT1 để nạp chu kì mà nó lấy luôn 255 tức là 33000us
Vậy phải làm sao,có cách nào để nó không đếm từ BOTTOM= 0 hay không,Xin mọi người giúp đỡ,
Tại em đang cần 3 ngõ ra tạo PWM
Chọn fast pwm mode rồi nạp zô OCR2 bình thường mà. Như timer 1 thôi.
 

mta_cdt

Super Moderator
Thành viên BQT
#3
chao mọi người,cho em hỏi cách tạo PWM bằng timer2 của atmega 8 với ạ,em muốn tạo với chu kì là 20ms,xung cao là 1ms,
em tính như sau:
Clock dùng 8Mhz,-->chọn clk/1024-->để có được 1ms thì nạp cho OCR2 là 1000us/(1024/8)=8 (là mức cao)
muốn có được 20ms thì nạp giá trị là 20000us/(1024/8)=156,nhưng khác với timer1 không có thanh ghi TCNT1 để nạp chu kì mà nó lấy luôn 255 tức là 33000us
Vậy phải làm sao,có cách nào để nó không đếm từ BOTTOM= 0 hay không,Xin mọi người giúp đỡ,
Tại em đang cần 3 ngõ ra tạo PWM
Bạn có thể dùng ngắt overflow ấy khi đếm tràn thì gán lại luôn TCNT2=... thì nó sẽ đếm từ giá trị đó trong TCNT2 nha bạn.
 

mta_cdt

Super Moderator
Thành viên BQT
#4
Chọn fast pwm mode rồi nạp zô OCR2 bình thường mà. Như timer 1 thôi.
Ý bạn ấy là muốn set để được độ rộng xung và chu kỳ, timer2 không cập nhật Top được như timer1.
 

Quảng cáo Google