haimaod 发表于 2011-9-6 18:16:32

马老师 avr 定时器T1输出PWM 频率怎么不对呀

对50Hz的交流量一个周期采集128个点,8兆的晶振,无预分频。应用相频修正PWM模式8 根据公式 代数应该是50*128=8000000/(2*1*TOP)

TOP=625        ,用proteus仿真 一个周期只有16个PWM波。悲催呀,哪的错呀?希望老师帮忙分析一下,谢谢       
void init_timer1(void)
{


TCCR1A=0xB0;//A通道比较输出模式 11 升序计数时比较匹配是置位OC1A,降序反之 【54】b通道 【10】wgm11 wgm10   A通道升序清零,B通道升序置位
TCCR1B=0x11;//【4】wgm13 wgm12时钟选择   无分频 【6】输入捕捉触发沿的选择 0下降沿 【7】输入捕捉噪声抑制
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x02;            //TOP   625
ICR1L=0x71;
TIMSK=0x04;//t/c1溢出中断使能 【0】t/c0溢出中断使能

OCR1AH=0x02;
OCR1AL=0x71;
OCR1BH=0x02;
OCR1BL=0x71;

}


把图贴在这儿了 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5030113&bbs_page_no=1&bbs_id=1030

haimaod 发表于 2011-9-7 09:37:33

终于找到问题所在了,在proteus里的时钟虽然按的是8兆的,但还得设一下
页: [1]
查看完整版本: 马老师 avr 定时器T1输出PWM 频率怎么不对呀