打印
[KungFu8位 MCU]

ChipON系列PWM操作例程分享

[复制链接]
1374|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yysforever|  楼主 | 2017-10-31 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/****************************************************************************************
*
* 文  件  名: main.c
* 项  目  名: 06-General PWM-1
* 版         本: v1.0
* 日         期: 2016年05月16日 11时38分22秒
* 作         者: Administrator
* 程序说明:普通PWM参考例程。
*                         PWM时钟源由T1分频而来,T1时钟源为Fsys/4
* 适用芯片:KF8FXXX系列——KF8F200、KF8F203、KF8F204、KF8F210、KF8F211、KF8F212、KF8F213、
*                                                  KF8F214、KF8F221、KF8F222、KF8F232、KF8F233、KF8F300、KF8F303、
*                                                  KF8F304、KF8F310、KF8F312、KF8F313、KF8F321、KF8F323、KF8F324、
*                                                  KF8F333、KF8F334、KF8F335、KF8F336、···
*                         KF8TS23XX系列——KF8TS2302、KF8TS2308、KF8TS2310、KF8TS2314、···
*                         KF8TS24XX系列——KF8TS2402、KF8TS2408、KF8TS2410、KF8TS2414、···
****************************************************************************************/
#include<KF8F312.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0x50;          //设置为4M

        /***端口初始化****/
        TR0 = 0x08;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        P0 = 0;                                        //P0口输出低电平
        P1 = 0;                                        //P1口输出低电平
        P2 = 0;                                        //P2口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/
        T1CTL = 0X01;                        //T1预分频比=1,启动T1
        T1L = 0;
        T1H = 0;
        PP1 = 0xff;                                //PWM1的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/4MHz)*1=256us,F=1/T=3.9KHz
        PP2 = 0xff;                                //PWM2的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/4MHz)*1=256us,F=1/T=3.9KHz
        PWM1L = PP1/2;                        //PWM1初始化占空比为50%
        PWM2L = PP2/2;                        //PWM2初始化占空比为50%

        PWMCTL = 0;                                //关闭PWM1、PWM2
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{
        static uchar direction=0;
        if(direction)
        {
                PWM1L++;                                                //PWM1增大占空比
                PWM2L++;                                                //PWM2增大占空比
                if(PWM1L > (PP1-1) )
                {
                        direction=0;                                //换向
                }
        }
        else
        {
                PWM1L--;                                                //PWM1减小占空比
                PWM2L--;                                                //PWM1减小占空比
                if(PWM1L==0)
                {
                        direction=1;                                //换向
                }
        }
}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);

        PWM1ON=1;                                                        //开启PWM1
        PWM2ON=1;                                                        //开启PWM2
        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

/****************************************************************************************
* 函数名     :int_fun
* 函数功能:中断入口
* 入口参数:无
* 返回          :无
****************************************************************************************/
void int_fun() __interrupt
{

}


沙发
yysforever|  楼主 | 2017-10-31 20:54 | 只看该作者
/****************************************************************************************
*
* 文  件  名: main.c
* 项  目  名: 06-General PWM-2
* 版         本: v1.0
* 日         期: 2016年05月16日 11时38分22秒
* 作         者: Administrator
* 程序说明:普通PWM参考例程
*                         PWM时钟源可选择T1(Fsys/4),也可以选择系统时钟Fosc。
* 适用芯片:KF8VXXX系列——KF8V111、KF8V120、KF8V200、KF8V204、KF8V211、KF8V216、
*                                                  KF8V218、KF8V220、KF8V327、KF8V427、KF8V429
****************************************************************************************/
#include<KF8V111.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0x50;          //设置为16M

        /***端口初始化****/
        TR0 = 0x08;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        P0 = 0;
        P1 = 0;
        P2 = 0;
        P0LR = 0;                                //P0口输出低电平
        P1LR = 0;                                //P1口输出低电平
        P2LR = 0;                                //P2口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/

        //时钟选择T1。A01版本只能选择T1时钟源作为PWM的时钟。
        T1CTL = 0X01;                        //T1预分频比=1,启动T1
        T1L = 0;
        T1H = 0;
        PP1 = 0xff;                                //PWM1的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/16MHz)*1=64us,F=1/T=15.6KHz
        PP2 = 0xff;                                //PWM2的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/16MHz)*1=64us,F=1/T=15.6KHz
        PWM1L = PP1/2;                        //PWM1初始化占空比为50%
        PWM2L = PP2/2;                        //PWM2初始化占空比为50%

        PWMCTL = 0;                                //关闭PWM1、PWM2

//        //选择MCU振荡时钟,通过PWMCTL的第2(PWM1CKS)、3(PWM2CKS)位选择
//        PP1 = 0xff;                                //PWM1的周期寄存器 ,分辨率为255,T=(255+1)*(1/16MHz)=16us,F=1/T=62.5KHz
//        PP2 = 0xff;                                //PWM2的周期寄存器 ,分辨率为255,T=(255+1)*(1/16MHz)=16us,F=1/T=62.5KHz
//        PWM1L = PP1/2;                        //PWM1初始化占空比为50%
//        PWM2L = PP2/2;                        //PWM2初始化占空比为50%
//
//        PWM1CKS=1;                                //PWM1时钟源选择MCU振荡时钟
//        PWM2CKS=1;                                //PWM2时钟源选择MCU振荡时钟
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{
        static uchar direction=0;
        if(direction)
        {
                PWM1L++;                                                //PWM1增大占空比
                PWM2L++;                                                //PWM2增大占空比
                if(PWM1L > (PP1-1) )
                {
                        direction=0;                                //换向
                }
        }
        else
        {
                PWM1L--;                                                //PWM1减小占空比
                PWM2L--;                                                //PWM1减小占空比
                if(PWM1L==0)
                {
                        direction=1;                                //换向
                }
        }
}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);

        PWM1ON=1;                                                        //开启PWM1
        PWM2ON=1;                                                        //开启PWM2
        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{

}


//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}

使用特权

评论回复
板凳
yysforever|  楼主 | 2017-10-31 20:54 | 只看该作者
/****************************************************************************************
*
* 文  件  名: main.c
* 项  目  名: 06-General PWM-3
* 版         本: v1.0
* 日         期: 2016年05月16日 11时38分22秒
* 作         者: Administrator
* 程序说明:普通PWM参考例程
*                         PWM时钟源可选择T1,T1时钟源可选择Fsys/4(T1CLKEN=0),也可以选择INTHF(T1CLKEN=1)
* 适用芯片:KF8TS25XX系列——KF8TS2502、KF8TS2508、KF8TS2510、KF8TS2514、KF8TS2516
*                         KF8TS27XX系列 ——KF8TS2702、KF8TS2708、KF8TS2710、KF8TS2714、KF8TS2716
*                         KF8FX156系列    ——KF8F2156、KF8F3156、KF8F4156
*                         KF8FX155系列    ——KF8F3155、KF8F4155
*                         KF8FX158系列    ——KF8F4158
****************************************************************************************/
#include<KF8TS2716.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0x50;          //设置为4M

        /***端口初始化****/
        TR0 = 0x04;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        TR3 = 0x00;                                //设置P3端口为输出
        P0 = 0;
        P1 = 0;
        P2 = 0;
        P3 = 0;
        P0LR = 0;                                //P0口输出低电平
        P1LR = 0;                                //P1口输出低电平
        P2LR = 0;                                //P2口输出低电平
        P3LR = 0;                                //P3口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/

        T1CLKEN=1;                                //T1CLKEN=1,T1时钟选择内部高频振荡器时钟INTHF;T1CLKEN=0,T1时钟选择Fsys/4
        T1CTL = 0X01;                        //T1预分频比=1,启动T1
        T1L = 0;
        T1H = 0;
        PP1 = 0xff;                                //PWM1的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/4MHz)*1=256us,F=1/T=3.9KHz
        PP2 = 0xff;                                //PWM2的周期寄存器 ,分辨率为255,T=(255+1)*4*(1/4MHz)*1=256us,F=1/T=3.9KHz
        PWM1L = PP1/2;                        //PWM1初始化占空比为50%
        PWM2L = PP2/2;                        //PWM2初始化占空比为50%

        PWMCTL = 0;                                //关闭PWM1、PWM2
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{
        static uchar direction=0;
        if(direction)
        {
                PWM1L++;                                                //PWM1增大占空比
                PWM2L++;                                                //PWM2增大占空比
                if(PWM1L > (PP1-1) )
                {
                        direction=0;                                //换向
                }
        }
        else
        {
                PWM1L--;                                                //PWM1减小占空比
                PWM2L--;                                                //PWM1减小占空比
                if(PWM1L==0)
                {
                        direction=1;                                //换向
                }
        }
}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);

        PWM1ON=1;
        PWM2ON=0;
        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{

}


//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}

使用特权

评论回复
地板
yysforever|  楼主 | 2017-10-31 20:54 | 只看该作者
/****************************************************************************************
*
* 文件名: main.c
* 项目名: 07-Enganced PWM_Single_Output-PWM3
* 版 本: v1.0
* 日 期: 2016年05月19日 10时48分57秒
* 作 者: Administrator
* 程序说明:增强型PWM参考例程。
*                         单输出模式PWM3,分辨率10位
* 适用芯片:KF8FXXX系列——KF8F211、KF8F212、KF8F213、
*                                                  KF8F214、KF8F221、KF8F222、KF8F232、KF8F233、
*                                                  KF8F312、KF8F313、KF8F321、KF8F323、
*                                                  KF8F334、KF8F335、KF8F336、···
****************************************************************************************/
#include<KF8F312.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0X60;      // 8M时钟

        /***端口初始化****/
        TR0 = 0x08;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        P0 = 0;                                        //P0口输出低电平
        P1 = 0;                                        //P1口输出低电平
        P2 = 0;                                        //P2口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/
        PWM3CTL1=0x00;        // 不开启自动使能,死区仅对半桥有效。
        P3ASCTL=0x00;        // 禁止自动关闭源,默认关闭状态为1。
        PATRCTL=0x1F;        // 开启转向同步,全部输出,0x11 P3A 0x12 P3B  0x14 P3C 0x18 P3D
        PWM3CTL0=0x00;  // 单输出模式,暂不开启,默认有效状态高电平。

        PWM3L=0x3F;                // 占空比初始化 25%,=(PWM3L:(PDT1:PDT0))/(4*(PP3+1))=00111111:11/4*(0XFF+1)=25%
        PDT1=1;                 // IN PWM3CTL0 bit 5
        PDT0=1;                 // IN PWM3CTL0 bit 4
        PP3=0xFF;                // 4倍数值构成PWM周期最小单位=(255+1)*4*(1/8MHz)*1=128us,F=1/T=7.8KHz

        // PWM使能
        T2=0;
        T2ON=1;                        // 启动T2,T2分频比1
        P3ON1=1;                // IN PWM3CTL0 bit 3          启动PWM3
        P3ON0=1;                // IN PWM3CTL0 bit 2        启动PWM3
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{
        static uchar direction=0;
        if(direction)
        {
                PWM3L++;
                if(PWM3L>=255)
                {
                        direction=0;
                }
        }
        else
        {
                PWM3L--;
                if(PWM3L==0)
                {
                        direction=1;
                }
        }
}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);
        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

/****************************************************************************************
* 函数名     :int_fun
* 函数功能:中断入口
* 入口参数:无
* 返回          :无
****************************************************************************************/
void int_fun() __interrupt
{

}

使用特权

评论回复
5
yysforever|  楼主 | 2017-10-31 20:55 | 只看该作者
/****************************************************************************************
*
* 文件名: main.c
* 项目名: 07-Enganced PWM_Single_Output-PWM4
* 版 本: v1.0
* 日 期: 2016年05月19日 10时48分57秒
* 作 者: Administrator
* 程序说明:增强型PWM参考例程。
*                         单输出模式PWM4,分辨率16位
* 适用芯片:KF8VXXX系列——KF8V216、KF8V218
****************************************************************************************/
#include<KF8V216.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0X70;      // 16M时钟

        /***端口初始化****/
        TR0 = 0x08;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        P0 = 0;
        P1 = 0;
        P2 = 0;
        P0LR = 0;                                //P0口输出低电平
        P1LR = 0;                                //P1口输出低电平
        P2LR = 0;                                //P2口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/
        PWM4CTL1=0x00;        // 不开启自动使能,死区仅对半桥有效。
        P4ASCTL=0x00;        // 禁止自动关闭源,默认关闭状态为1。
        PATRCTL=0x1F;        // 开启转向同步,全部输出,0x11 P3A 0x12 P3B  0x14 P3C 0x18 P3D

        PP4H=0X00;
        PP4L=0XFF;                //T=(0X00FF+1)*(1/16MHz)*1=16us,F=1/T=62.5KHz

        PWM4L0=0X80;        //初始化占空比0X0080/(0X00FF+1)=50%
        PWM4L1=0X00;

        /****T2使能******/
        T2H=0;
        T2L=0;
        T2CTL=0X04;                // 启动T2,T2分频比1

        PWM4CTL0=0x0C;  // 单输出模式,开启PWM4,默认有效状态高电平。
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{
        static uchar direction=0;
        if(direction)
        {
                PWM4L0++;
                if(PWM4L0>=255)
                {
                        direction=0;
                }
        }
        else
        {
                PWM4L0--;
                if(PWM4L0==0)
                {
                        direction=1;
                }
        }
}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);
        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{

}


//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}

使用特权

评论回复
6
yysforever|  楼主 | 2017-10-31 20:55 | 只看该作者
/****************************************************************************************
*
* 文  件  名: main.c
* 项  目  名: 07-Enganced PWM_Single_Output-PWM5
* 版         本: v1.0
* 日         期: 2016年05月16日 11时38分22秒
* 作         者: Administrator
* 程序说明:增强型PWM参考例程。
*                         单输出模式PWM5,分辨率16位
* 适用芯片:KF8FX156系列——KF8F2156、KF8F3156、KF8F4156
*                         KF8FX155系列——KF8F3155、KF8F4155
*                         KF8F4158系列——KF8F4158
*                         KF8VXXX系列——KF8V429
****************************************************************************************/
#include<KF8F4156.h>

#define uchar unsigned char
#define uint  unsigned int

/****************************************************************************************
* 函数名     :Delay_ms
* 函数功能:长时间延时
* 入口参数:延时基数 uchar ms_data
* 返回          :无
****************************************************************************************/
void Delay_ms(uint ms_data)
{
        uchar i;
        while(ms_data--)
        {
                i = 124;
                while(i--);
        }
}

/****************************************************************************************
* 函数名     :init_mcu
* 函数功能:mcu初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_mcu()
{
        /***时钟初始化****/
        OSCCTL = 0x70;          //设置为16M

        /***端口初始化****/
        TR0 = 0x08;                                //设置P03端口为输入,P0其他I/O口为输出
        TR1 = 0x00;                                //设置P1端口为输出
        TR2 = 0x00;                                //设置P2端口为输出
        TR3 = 0x00;                                //设置P3端口为输出
        P0 = 0;
        P1 = 0;
        P2 = 0;
        P3 = 0;
        P0LR = 0;                                //P0口输出低电平
        P1LR = 0;                                //P1口输出低电平
        P2LR = 0;                                //P2口输出低电平
        P3LR = 0;                                //P3口输出低电平
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm初始化函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void init_pwm()
{
        /***PWM相关寄存器初始化****/

        P5ASCTL                = 0b00000000;                        //设置PWM5关闭时候PWM口输出电平                这里为默认设置,关闭PWM时候都输出0
        PWM5CTL2        = 0b00000001;                        //PWM周期自动填充更新

        PWM5CTL0        = 0b00001100;                         //单输出PWM高电平有效
        PSTRCTL                = 0b00010001;                        //PWM单项输出时候,和全桥输出时候,PWM信号控制是否输出到相应IO上, PSTRCTL(3:0)分别为P5D P5C P5B P5A,P5A=1则,PWM输出到P5A口,其他为设置为1输出到其他口
        PP5H                = 0;                                        //高位
        PP5L                = 40;                                        //设置PWM周期  周期时间为PP5+1进行计算
        PWM5L1                = 0;                                        //高位
        PWM5L0                = 20;                                        //设置PWM占空比
        T2H                        = 0;
        T2L                        = 0;                                        //PWM时钟源 T2相关设置
        T2CTL0                = 0b00000000;
        T2ON                = 1;
}

/****************************************************************************************
* 函数名     :init_pwm
* 函数功能:pwm功能函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void pwm_function()
{

}

/****************************************************************************************
* 函数名     :main
* 函数功能:程序入口主函数
* 入口参数:无
* 返回          :无
****************************************************************************************/
void main()
{
        init_mcu();
        init_pwm();
        Delay_ms(10);

        while(1)
        {
                pwm_function();
                Delay_ms(10);
        }
}

//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{

}


//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}

使用特权

评论回复
7
ah9b87| | 2017-11-3 10:44 | 只看该作者
代码的风格不错啊

使用特权

评论回复
8
zzzhui| | 2017-11-20 20:53 | 只看该作者
PWM的用处很好啊,这个不错

使用特权

评论回复
9
haolaishi| | 2017-11-22 20:19 | 只看该作者
看着和51也是没什么区别的。

使用特权

评论回复
10
afgnhgrf| | 2017-11-23 13:33 | 只看该作者
好东西啊,谢谢分享

使用特权

评论回复
11
ah9b87| | 2017-11-23 13:37 | 只看该作者
好东西啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

254

帖子

0

粉丝