使用方式2八位自动重装模式的话,中断程序里不需要再设置初值了吧 |
SPEAR 发表于 2021-1-28 00:02 老哥,发一下你完整的程序吧,谢谢了,我改了之后仿真仍然是连续波形,多谢多谢 |
SPEAR 发表于 2021-1-28 00:02 我知道了,我用的是定时器0模式1 |
SPEAR 发表于 2021-1-28 00:02 是我表述的不清楚,周期20ms其中高电平为1.5ms(也就是1500us) 老哥,请问 “周期20ms,分成两百份,按照11.0592MHZ,每份92us” 为什么92us初值是164呢? 不是按照65536-92+1=FFA5吗? 然后TH0=FF,TL0=A5,请问这种算法为什么不对呢? |
好像看错了,应该把30改成15,按照题目的意思占空比应该是7.5%不是15% |
感觉你的思路有些混乱啊,晶振是11.0592MHZ,时钟周期不是1/11.0592us吗,怎么又在注释里写了1/12us呢?这个算错了之后的定时时间肯定是错的。照你的意思,应该是输出50HZ,周期0.02s的方波,把每个周期分为200份,其中15%输出高电平,既然是这样,高电平不应该是200*0.15=30份吗,或者说一个pwm周期20ms,其中高电平时间应该是3ms,才符合15%的占空比,程序里咋写了个1500us。。周期0.02s,分成200份,按照11.0592MHZ晶振,每一份差不多是92us,就是定时器中断一次花的时间,用定时器0模式2就够了,初值设为164,正常的波形应该是图片那样。中断里的程序应该这样写才对
|
pwm.png (93.81 KB, 下载次数: 120)
它为什么会出现连续的波形呢?应该是一段持续的高电平才对啊? |