📄 zl_pwm.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 + -