PWM产生不出来

2019-03-24 18:27发布

先上代码在说void Timer_0(void) interrupt 1//中断函数{
        TH0=(65536-50)/256;//(65536-n)为定时器初值
        TL0=(65536-50)%256;
        num++;
        if(num>10)num=1;
        else if(num<=8)output=0;//使占空比为7:3
        else output=1;
}
void main(void)
{
        cmg88();
        lcd_init();
        lcd_clear();
        Init();
        while(1)
        {
                xianshi();
//                pwm();
//                dianjikongzhi();       
        }
}

我的问题是在语法上,这个没错误了,可是就是没有输出高低电平


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
Li_Lei
1楼-- · 2019-03-24 20:21
 精彩回答 2  元偷偷看……
老周——
2楼-- · 2019-03-25 00:12
我觉得是哪有逻辑错误
Li_Lei
3楼-- · 2019-03-25 04:56
你中断周期太短了,这点时间中断服务执行不完.
你试试定时器的自动重装模式,能好些不过也有个限度.
yuanlai2010
4楼-- · 2019-03-25 08:05
 精彩回答 2  元偷偷看……
老周——
5楼-- · 2019-03-25 08:54
yuanlai2010 发表于 2014-3-9 11:11
没准根本就没有进入中断函数,看看你的定时器中断是不是配置正确了

你答对了,没进中断,是1602的初始化影响了中断。不过怎么影响还没找到,又没有重复使用I/O口,正在检修
老周——
6楼-- · 2019-03-25 14:38
huo_hu 发表于 2014-3-9 10:31
你中断周期太短了,这点时间中断服务执行不完.
你试试定时器的自动重装模式,能好些不过也有个限度.

是没进中断,把1602初始化屏蔽就有输出了,可是没有重复使用I/O口怎么就影响了?

一周热门 更多>