tangly2017 发表于 2017-11-6 16:42:09

ATTINY13A双PWM输出问题

ATTINY13A PWM输出问题:
程序一,PWM的输出是没有问题的
void PWM_INT()
{   
          TCCR0B=0x00;// 0000 0001时钟选择为0分频
          OCR0A=55;
//          OCR0B=70;
          TCCR0A=0x42;   //CTC模式   0100 0010
          TCCR0B=0x01;   // 0000 0001时钟选择为0分频
          delay_ms(5);
}

程序二,没有PWM输出,其他的程序段一样。
void PWM_INT()
{   
          TCCR0B=0x00;// 0000 0001时钟选择为0分频
//          OCR0A=55;
          OCR0B=70;
          TCCR0A=0x12;   //CTC模式   0001 0010
          TCCR0B=0x01;   // 0000 0001时钟选择为0分频
          delay_ms(5);
}
问题在那里?请各位大虾赐教!!

lxvtag 发表于 2017-11-6 19:26:59

看不出什么问题,PB1设为输出了么?

tangly2017 发表于 2017-11-6 20:56:15

PB1设置输出了,是编译软件的问题吗??

lxvtag 发表于 2017-11-7 09:35:54

可能是CTC模式造成的:计数到OCR0A时就清零了,永远到不了OCR0B。你给OCR0A初始化个比OCR0B大的值试试,不然就换种PWM模式。

tangly2017 发表于 2017-11-7 11:29:36

你说得对:计数到OCR0A时就清零了,永远到不了OCR0B。双PWM输出,只要OCR0A就可以,OCR0B根本不起作用,而且双PWM输出只能是同频率的,不同频率的做不到

appfan 发表于 2017-11-8 14:50:32

使用ICCAVR的向导来生成代码多方便啊!!!

appfan 发表于 2017-11-8 14:51:23

原来自己一直没发现,后来才发现有这么便捷的方式!!
页: [1]
查看完整版本: ATTINY13A双PWM输出问题