OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5301|回复: 2

关与52产生PWM波的问题 求大神来看看到底出什么问题了

[复制链接]

26

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-3-5
在线时间
21 小时
发表于 2017-5-22 22:49:18 | 显示全部楼层 |阅读模式
10金钱
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar up =0;
sbit P20 = P2^0;
void TIM0_init()
{
                TMOD = 0x02;
                TH0  = 0xf6;
                TL0 = 0xf6;
                EA = 1;
                ET0=1;
                TR0=1;
}
void main()
{
        TIM0_init();
        while(1){};

}

void timer0_int(void) interrupt 1
{
        if(up>5) P20=1;
        else P20 = 0;
        if(up==10)up=0;
        up++;
}


晶振为11.0592  MHz
我的程序是要产生一个周期为100us的占空比为50%的方波 但是示波器的周期为何是300多us的呢??

QQ图片20170522224049.jpg

最佳答案

查看完整内容[请看2#楼]

定时器10US中断一次,对于52,11.0592M时钟,中断频率太高了点,单片机处理不过来了,所以你得到的PWM是不准的!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2017-5-22 22:49:19 | 显示全部楼层
定时器10US中断一次,对于52,11.0592M时钟,中断频率太高了点,单片机处理不过来了,所以你得到的PWM是不准的!
回复

使用道具 举报

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
发表于 2017-5-24 15:49:42 | 显示全部楼层
慢慢调参数吧,这样产生的PWM本来就不准
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 14:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表