?? pwm1.c
字號:
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
void main(void)
{
//Step1,初始化系統控制寄存器,PLL,看門狗,時鐘等
InitSysCtrl();
//Step2,設置GPIO功能
EALLOW;
//使能PWM引腳
GpioMuxRegs.GPAMUX.all = 0x00FF; //EVA PWM1-6引腳
GpioMuxRegs.GPBMUX.all = 0x00FF; //EVB PWM7-12引腳
EDIS;
//Step3,初始化PIE中斷向量表vector table;
//進制和清楚所有CPU中斷:
DINT;
IER = 0x0000;
IFR = 0x0000;
//初始化PIE控制寄存器位默認狀態
InitPieCtrl();
//將PIE向量表設置為特定狀態
InitPieVectTable();
//Step4,EVA配置T1PWM,T2PWM,PWM1-PWM6
//初始化定時器
//初始化EVA定時器1:
EvaRegs.T1PR = 0xFFFF; //定時器1周期
EvaRegs.T1CMPR = 0x3C00; //定時器1比較器
EvaRegs.T1CNT = 0x0000; //定時器1計數器
//TMODE=連續遞增/遞減計數,定時器使能,比較使能
EvaRegs.T1CON.all = 0x1042;
//初始化EVA定時器2:
//EvaRegs.DBTCONA.all = 0x0C4C; //使能死區控制
EvaRegs.T2PR = 0x0FFF; //定時器2周期
EvaRegs.T2CMPR = 0x03C0; //定時器2比較器
EvaRegs.T2CNT = 0x0000; //定時器2計數器
//TMODE=連續遞增/遞減計數,定時器使能,比較使能
EvaRegs.T2CON.all = 0x1042;
//設置T1PWM和T2PWM
//比較邏輯驅動T1/T2 PWM
EvaRegs.GPTCONA.bit.T1CMPOE = 1;
//定時器1比較器極性設置為低電平有效
EvaRegs.GPTCONA.bit.T1PIN = 1;
//定時器2比較器極性設置為高電平有效
EvaRegs.GPTCONA.bit.T2PIN = 2;
//使能產生PWM1-PWM6的比較功能
EvaRegs.CMPR1 = 0x0C00;
EvaRegs.CMPR2 = 0x3C00;
EvaRegs.CMPR3 = 0xFC00;
//比較方式控制
//輸出引腳1CMPR1-高有效
//輸出引腳2CMPR1-低有效
//輸出引腳3CMPR2-高有效
//輸出引腳4CMPR2-低有效
//輸出引腳5CMPR3-高有效
//輸出引腳6CMPR3-低有效
EvaRegs.ACTRA.all = 0x0666;
EvaRegs.DBTCONA.all = 0x0000; //禁止死區
EvaRegs.COMCONA.all = 0xA600;
/*
//Step5,EVB配置T3PWM,T4PWM,和PWM7-PWM12
//初始化定時器
//初始化定時器3
//定時器3控制T3PWM和PWM7-12
EvbRegs.T3PR = 0xFFFF; //定時器3周期
EvbRegs.T3CMPR = 0x3C00; //定時器3比較器
EvbRegs.T3CNT = 0x0000; //定時器3計數器
//TMODE=連續遞增/遞減計數,定時器使能,比較使能
EvbRegs.T3CON.all = 0x1042;
//初始化EVB定時器4
//定時器4控制T4PWM
/* EvbRegs.T4PR = 0x00FF; //定時器4周期
EvbRegs.T4CMPR = 0x0030; //定時器4比較器
EvbRegs.T4CNT = 0x0000; //定時器4計數器
//TMODE=連續遞增/遞減計數,定時器使能,比較使能
EvbRegs.T4CON.all = 0x1042;
*/
//設置T3PWM和T4PWM
//比較邏輯驅動T3/T4 PWM
/* EvbRegs.GPTCONB.bit.T3CMPOE = 1;
//定時器3比較器設置為低電平有效
EvbRegs.GPTCONB.bit.T3PIN = 1;
//定時器4比較器設置為高電平有效
EvbRegs.GPTCONB.bit.T4PIN = 2;
*/
//使能產生PWM7-PWM12的比較功能
/* EvbRegs.CMPR4 = 0x0C00;
EvbRegs.CMPR5 = 0x3C00;
EvbRegs.CMPR6 = 0xFC00;
*/
//比較方式控制
//輸出引腳1CMPR4-高有效
//輸出引腳2CMPR4-低有效
//輸出引腳3CMPR5-高有效
//輸出引腳4CMPR5-低有效
//輸出引腳5CMPR6-高有效
//輸出引腳6CMPR6-低有效
// EvbRegs.ACTRB.all = 0x0666;
// EvbRegs.DBTCONB.all = 0x0000; //禁止死區
// EvbRegs.COMCONB.all = 0xA600;
//Step6,IDLE循環
//采用示波器觀察PWM信號波形
for(;;);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -