cpusysregs.pclkcr2.bit.epwm1=1;
開啟epwm時鐘
eallow;
clkcfgregs.perclkdivsel.bit.epwmclkdiv = 0;
第一步pwm時鐘對於系統時鐘不分頻
cpusysregs.pclkcr0.bit.tbclksync = 0;
關閉所有tb時鐘
edis;
epwm1regs.tbctl.bit.syncosel = 0;
同步輸出訊號選擇
epwm1regs.tbctl.bit.phsen = 0;
同步輸出功能開關
epwm1regs.tbphs.all = 0;
同步輸出觸發時復位偏移量
epwm1regs.tbprd = pwm_timer_tbprd_init;
設定tb計數週期
epwm1regs.tbctl.bit.ctrmode = tb_count_updown;
決定tb計數模式
epwm1regs.tbctl.bit.clkdiv = tpwm_ktdiv;
epwm1regs.tbctl.bit.hspclkdiv = 0;
決定最終pwm時鐘相對於系統時鐘是幾分頻,clkdiv 和hspclkdiv 兩個分頻係數是相乘關係
epwm1regs.tbctr = 0x0000;
tb計數清零
epwm1regs.cmpa.bit.cmpa = pwm_timer_tbprd_init>>1;
epwm1regs.cmpb.bit.cmpb = pwm_timer_tbprd_init>>1;
設定ab兩比較暫存器數值
epwm1regs.cmpctl.bit.shdwamode = cc_shadow;
epwm1regs.cmpctl.bit.shdwbmode = cc_shadow;
比較暫存器工作模式選擇
epwm1regs.cmpctl.bit.loadamode = cc_ctr_loadmd;
epwm1regs.cmpctl.bit.loadbmode = cc_ctr_loadmd;
選擇在何時載入比較暫存器數值
epwm1regs.aqctla.bit.cau = cmpa_set;
epwm1regs.aqctla.bit.cbu = cmpb_set;
pwma向上計數時cmpa與b位置輸出變化狀態
epwm1regs.aqctla.bit.cad = cmpa_clear;
epwm1regs.aqctla.bit.cbd = cmpb_clear;
pwma向下計數時cmpa與b位置輸出變化狀態
epwm1regs.aqctlb.bit.cau = cmpa_clear;
epwm1regs.aqctlb.bit.cbu = cmpb_clear;
pwmb向上計數時cmpa與b位置輸出變化狀態
epwm1regs.aqctlb.bit.cad = cmpa_set;
epwm1regs.aqctlb.bit.cbd = cmpb_set;
pwmb向下計數時cmpa與b位置輸出變化狀態
epwm1regs.aqctla.bit.prd = prd_clear;
epwm1regs.aqctla.bit.zro = zro_set;
epwm1regs.aqctlb.bit.prd = prd_set;
epwm1regs.aqctlb.bit.zro = zro_clear;
在零與週期值時輸出變化狀態
epwm1regs.aqsfrc.bit.actsfa = 2;
epwm1regs.aqsfrc.bit.actsfb = 2;
呼叫一次性軟體強制a和b時的操作
epwm1regs.aqsfrc.bit.otsfa = 1;
epwm1regs.aqsfrc.bit.otsfb = 1;
禁用強制事件
epwm1regs.dbctl.bit.out_mode = db_full_enable;
死區輸出模式選擇
epwm1regs.dbctl.bit.in_mode = dbb_all;
死區輸入模式選擇
epwm1regs.dbctl.bit.polsel = db_actv_loc;
死區極性選擇
epwm1regs.dbred.bit.dbred = i;
死區時間
eallow;
cpusysregs.pclkcr0.bit.tbclksync =1;
使能時鐘
edis;
epwm1regs.etsel.bit.intsel = et_ctr_zero;
生成中斷位置選擇
epwm1regs.etsel.bit.inten = 1;
使能pwm中斷
epwm1regs.etps.bit.intprd = et_1st;
epwm 中斷 (epwmx_int) 期間選擇
eallow;
pievecttable.epwm1_int = &pwm_interrupt;
中斷函式選擇
edis;
ier |= m_int3;
開啟中斷位
piectrlregs.pieier3.bit.intx1 = 1;
使能中斷
28377D晶元CLA模組除錯記錄(2)
cla1regs.mvect1 uint16 t cla1task1 將cla的任務1設定為cla1task1,以此類推 dmaclasrcselregs.cla1tasksrcsel1.bit.task1 1 選擇任務1觸發方式,具體資料在晶元技術參考手冊6.2.4章節 dmaclasrcselr...
F28377D的CAN使用筆記
1.cpu1中配置系統,分配引腳到cpu2,初始化引腳功能。2.cpu2中,使能時鐘,初始化暫存器,設定波特率,配置中斷向量,函式,使能can 3.使用郵箱canmassage,晶元內一共有32個郵箱,注意的是這32個ram不能直接操作,是通過其他暫存器間接操作的,庫函式已經做好封裝。4.canma...
LKT4100D 8位防盜版加密晶元
概述 lkt4100d是凌科芯安科技最新推出的一款8位防盜版加密晶元,採用增強型8051金融級安全晶元為基礎。使用者可將關鍵演算法 程式內嵌入晶元中,從根本上杜絕程式被破解的可能。支援io模擬及uart通訊,具有超高的價效比。產品安全 引數型別 cpu 核心 增強型8051 4kv 靜電保護 工作電...