Chào các bạn, mình đang loay hoay với cái PWM (phase corect PWM mode).
Mình sử dụng ATtiny13 và đã làm theo các hướng dẫn trong datasheet nhưng ko hiểu tại sao vẫn ko ra. Chân 5 (OC0A) nhất định chỉ chịu ra giá trị 1. Mình đã thử các trường hợp khác, vd Clear Timer on Compare Match với toggle rất ổn.
Đây là code:
#include <ioavr.h>
#include <inavr.h>
int main(void)
{
DDRB = (1<<DDB0); (chân 5 là đầu ra, tương ứng PB0)
TCCR0A = (1<<COM0A1)|(1<<WGM00);
TCCR0B = (1<<WGM02)|(1<<CS00);
OCR0A = 0x3B;
while(1){}
}
// clk_ io/1 (From prescaler) and WM Phase correct; Compare Output Mode, Phase Correct PWM Mode WGM02=1;WGM00=1->Mode 5. COM0A1: đầu PWM ra tại OC0A.
Cảm ơn các bạn đã chỉ giúp.
Thân,
AT
Mình sử dụng ATtiny13 và đã làm theo các hướng dẫn trong datasheet nhưng ko hiểu tại sao vẫn ko ra. Chân 5 (OC0A) nhất định chỉ chịu ra giá trị 1. Mình đã thử các trường hợp khác, vd Clear Timer on Compare Match với toggle rất ổn.
Đây là code:
#include <ioavr.h>
#include <inavr.h>
int main(void)
{
DDRB = (1<<DDB0); (chân 5 là đầu ra, tương ứng PB0)
TCCR0A = (1<<COM0A1)|(1<<WGM00);
TCCR0B = (1<<WGM02)|(1<<CS00);
OCR0A = 0x3B;
while(1){}
}
// clk_ io/1 (From prescaler) and WM Phase correct; Compare Output Mode, Phase Correct PWM Mode WGM02=1;WGM00=1->Mode 5. COM0A1: đầu PWM ra tại OC0A.
Cảm ơn các bạn đã chỉ giúp.
Thân,
AT
Comment