[C18] Hỗ trợ - Dùng Timer tạo 3 xung PWM chu kì, duty cycles khác nhau

Qthai16

Thành Viên PIF
Chào các em.

Tình hình là anh thấy khá nhiều bạn làm đề tài cuối khóa C18 có liên quan đến động cơ. Thế nhưng khổ nỗi code mẫu C8 của CLB chỉ xuất được có 1 chân PWM:-s:-s:-s.

Vì vậy, anh post 1 code mà anh đã xuất được 3 xung PWM tần số và chu kì đều thay đổi được. Hy vọng sẽ cứu vớt được cuộc đời của ai đó:1cool_byebye:

Module Timer trong code anh cấu hình Up-mode (đếm đến CCR0 sẽ Reset). Thanh ghi TAxCCR0 sẽ dùng để định chu kì cho xung PWM, 2 thanh ghi TAxCCR1 và TAxCCR2 sẽ dùng để nạp giá trị duty cycles mong muốn. Hiện trong code 3 chân có xung PWM là P1.6 (Timer A0), P2.1 và P2.4 (Timer A1).

Nếu muốn xuất xung PWM ra chân khác, các em xem trong sơ đồ sau (những chân có tô đỏ là những chân có thể làm output cho Timer)


****Chú ý: Nếu cấu hình Up-mode cho Timer, đối với MSP430G2553 sẽ chỉ xuất được 1 channel PWM đối với Timer A0; 2 channel PWM duty cycles khác nhau cho Timer A1.

Chúc các em hoàn thành đề tài cuối khóa của mình.:D:D:D


[Link tải code mẫu]
 
Last edited:
Top