Welcome & Happy Holidays!
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    PWM dÙNG timer 2 của Atmega8

    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

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kakaducsy
    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.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kakaducsy
    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.

  4. #4
    Ngày tham gia
    May 2016
    Bài viết
    0
    Trích dẫn Gửi bởi kuem0912
    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.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi mta_cdt
    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.
    Tức là nạp TCNT2 =255-156 va OCR2=TCNT2+8 ,và cài overflow phải ko anh

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 04:43 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2019 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.