⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zl_pwm.c

📁 2812设计源码 ADC 模块编程必须首先设置时钟
💻 C
字号:
   #include "DSP28_Device.h"

   void pwm(void){
   // EVA 配置 T1PWM, PWM1~PWM6
   //  (1)初始化定时器
   //  初始化 EVA Timer1
    EvaRegs.EXTCON.bit.INDCOE = 1;  //单独使能比较输出模式
    EvaRegs.ACTRA.all = 0x0aaa;     //空间矢量不动作
    EvaRegs.DBTCONA.all = 0x08ec;   //死区定时器启动
    EvaRegs.CMPR1 = 50;
    EvaRegs.CMPR2 = 100;
    EvaRegs.CMPR3 = 200;
    EvaRegs.COMCONA.all = 0x0A6E0;   //空间向量禁止,全比较使能,陷阱禁止

    EvaRegs.EVAIMRA.bit.T1UFINT = 1; //T1下溢中断使能
    EvaRegs.EVAIFRA.bit.T1UFINT = 1; //清零定时器1下溢中断位,增减计数时每2*102.4=204.8us中断一次
    EvaRegs.GPTCONA.bit.T1TOADC = 1; //周期寄存器下溢启动AD
    
    EvaRegs.EXTCON.bit.INDCOE = 1;  //单独使能比较输出模式
    EvaRegs.GPTCONA.all = 0x0012;   //GP定时器1比较输出低有效
    EvaRegs.T1PR = 0x0100;      // 定时周期为5.12us*(T1PR+1)=5.12*20=102.4us
    EvaRegs.T1CMPR = 0x0010;    // GP定时器的比较寄存器
    EvaRegs.T1CNT = 0x0000;     // 定时器初值
    EvaRegs.T1CON.all = 0x0F42;//连续增减计数,128分频,使能比较,打开定时器,
                               //128分频后得到195310Hz,即周期5.12us
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -