?? init.c
字號:
#include "Spmc75_regs.h"
#include "unspmacro.h"
#include "SPMC75_SPWM_ISR.h"
extern int iSin_TAB[];
void MCP4_T_PWM_init()
{
P_IOC_Dir->W |= 0xFC00; // 將IOC[10]-IOC[15]設置為輸出,不影響其它端口的設置
P_IOC_Attrib->W |= 0xFC00; //將IOC[10]-IOC[15]設置為非反向 ,不影響其它端口的設置
P_IOC_SPE->W |= 0xFC00; //只對IOC[10]-IOC[15]進行設置,不影響其它端口的設
P_TPWM_Write->W |= 0x5A02; //MCP4各控制寄存器寫使能
//TPR中斷頻率選擇每個周期中斷一次 PRDINT = "00"B
//操作模式選擇為中心PWM模式 MODE = "1010"B
//定時清除源選擇為TPR CCLS = "111"B
//上升沿計數 CKEGS = "00"B
//定時器分頻選擇為Fck/1 TMRPS = "000"B
P_TMR4_Ctrl->W = 0x28E0;
//PWM比較匹配輸出模式設定
//初始輸出為1,比較匹配輸出為0
P_TMR4_IOCtrl->W = 0x0222;
P_TMR4_INT->W |= 0x0010; //定時器周期寄存器TPR比較中斷使能
//三相均插入死區時間
//U相死區時間使能 DTUE = "1"B
//V相死區時間使能 DTVE = "1"B
//W相死區時間使能 DTWE = "1"B
P_TMR4_DeadTime->W |= 0x7007;
//TIO4A輸出使能 TMR4AOE = "1"B
//TIO4B輸出使能 TMR4BOE = "1"B
//TIO4C輸出使能 TMR4COE = "1"B
//TIO4D輸出使能 TMR4DOE = "1"B
//TIO4E輸出使能 TMR4EOE = "1"B
//TIO4F輸出使能 TMR4FOE = "1"B
P_TMR_Output->W = 0x3F00; //使能TIO4A引腳輸出
//占空模式選擇:三相獨立 DUTYMODE = "1"B
//U相PWM波形輸出使能 UPWM = "1"B
//V相PWM波形輸出使能 VPWM = "1"B
//W相PWM波形輸出使能 WPWM = "1"B
P_TMR4_OutputCtrl->W = 0xC73F;
P_TMR4_TPR->W = 1024; //設定計數值
P_TMR4_TGRA->W = 0; //設定占空比
P_TMR4_TGRB->W = 0; //設定占空比
P_TMR4_TGRC->W = 0; //設定占空比
//注意:對TGRA--TGRC數據進行改寫時,應該設定P_TMR_LDOK的值,以將改寫值載入相應寄存器
P_TMR_LDOK->W = 0x00AA;
P_TMR_Start->B.TMR4ST = 1; //啟動MCP4定時器
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -