微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STC12C5A60S2输出50hz的pwm,控制舵机,请看一下哪里有问题

STC12C5A60S2输出50hz的pwm,控制舵机,请看一下哪里有问题

时间:10-02 整理:3721RD 点击:
#include<STC12C5A.h>
void PWM_init(void)
{
        CMOD=0x04;//pca模式设置,设置pwm频率
        CL=0;//*******************************************************************
        CH=0;
        CCAPM0=0x42;//设置pca工作方式位pwm模式(0100 0010)
        CCAP0L=0x00;//pwm0初始值为0
        CCAP0H=0x00;
        CR=1;//启动定时器
        //也可以增加设置pwm1,pwm2...
}
void PWM_set(unsigned char a)//参数0x00~0xff,也可以用0~256
{
        CCAP0L=a;//设置值写入CCAP0L
        CCAP0H=a;//设置值写入CCAP0H
}
void time0(void)
{
       
        AUXR=0x80;                //定时器时钟12T模式
        TMOD=0x02;                //设置定时器模式
        TL0 = 217;                //设置定时初值//*************************************************
        TH0 = 217;                //设置定时初值
//        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
        WAKE_CLKO = 0x01;               //enable timer0 clock output
}
void main()
{
       
        PWM_init();
        time0();
        PWM_set(19);
       
       
}

目测最起码你的main函数里没有while(1)

没有while(1),也没有系统时钟初始化啊

单片机,没用过,其他的问题,暂时不知道

最好的方法就是看芯片手册,里面一般会有参考代码,普通51有中断允许寄存器,建议看看这个芯片是不是也有而你漏掉了

我没有要循环的东西,有没有while(1)应该影响不大

手册没有我看过了

你不认为没有的话会一直在反复的执行那几个函数吗?就会一直在那里设定那些参数,你的定制器还能起作用?

每个人都在忙,要么忙着活,要么忙着死,只有这两种选择。

小编解决了吗?

定时器0溢出,你咋处理的?50Hz怎么得到的呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top