“线程:HALCOGEN, 测试”中讨论的其它部件
型号初始化代码:
_enable_interrupt _();
/*设置 ADC */
adcStartConversion (adcREG1,adcGROUP1);
adcStartConversion (adcREG2,adcGROUP1);
KickerRe-> KICKER0 = 0x83E70B13U;
KickerRe-> KICKER1 = 0x95A4F1E0U;
PINMMR35 = 0x0000;
kickerRegistr->KICKER0 = 0x000000000000U;
kickerRe->KICKER1 = 0x000000000000U;
/*设置 etPWM */
etpwmSetCount (etpwmREG1,1000);
etpwmSetCount (etpwmREG2500);
etpwmSetCount (etpwmREG3,300);
etpwmSetCounterMode (etpwmREG1,CounterMode_Uptown);
etpwmSetCounterMode (etpwmREG2,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG3,CounterMode_Uptown);
etpwmSetSyncOut (etpwmREG1,SyncOut_CtrlEqZero);
etpwmSetSyncOut(etpwmREG2, SyncOut_EPWMxSYNCI);
etpwmSetSyncOut(etpwmREG3,SyncOut_EPWMxSYNCI);
etpwmREG2->TBCTL ||(uint16) 2U <1U;// PHSEN
etpwmREG3->TBCTL |=(uint16) 2U <<1U;
/*配置 mthe 模块以在 CT=0时将 PWMA 值设置为1,在 CTM=CmpA */时将 PWMA 值设置为0
etpwmActionQualConfig_t configPWM;
configPWM.CtrlEqPeriod_Action = ActionQual_Disabled;
configPWM.CtrlEqZERO = ActionQual_Disabled;
configPWM.CtrlEqCmpAUP_Action = ActionQual_set;
configPWM.CtrlEqCmpADown _操作= ActionQual_clear;
configPWM.CtrlEqCmpBUp_Action = ActionQual_Disabled;
configPWM.CtrlEqCmpBDown _操作= ActionQual_Disabled;
etpwmSetActionQualPwmA(etpwmREG1, configPWM);
etpwmSetActionQualPwmA(etpwmREG2, configPWM);
etpwmSetActionQualPwmA(etpwmREG3,configPWM);
/*启用 SOC 触发器*/
etpwmEnableSOCA (etpwmREG1,CTR_ZERO,EventPeriod_FirstEvent);
etpwmClearEventFlag (etpwmREG1,Event_SOCA);
etpwmTriggerEvent(etpwmREG1, Event_SOCA);
etpwmDisableCounterLoadOnSync (etpwmREG1);
etpwmEnableCounterLoadOnSync (etpwmREG2,0,0x2000);
etpwmEnableCounterLoadOnSync (etpwmREG3,0,0x2000);
etpwmEnableTimebasePeriodShadowImage 模式(etpwmREG1);
etpwmEnableTimebasePeriodShadowImage 模式(etpwmREG2);
etpwmEnableTimebasePeriodShadowImage 模式(etpwmREG3);
etpwmEnableCmpAShadowImage 模式(etpwmREG1,LoadMode_CtrlEqZero);
etpwmEnableCmpAShadowImage 模式(etpwmREG2,LoadMode_CtrlEqZero);
etpwmEnableCmpAsShadowImage 模式(etpwmREG3,LoadMode_CtrlEqZero);
etpwmDeadBandConfig_t 死带宽配置;
死带宽 config.halfycleEnable =真;
deadbandconfig.inputmode = PWMA_RED_FED;
死带宽 config.outputmode = PWMB_fed_PWMA_RED;
死带宽 config.极性=反向 PWMB;
etpwmSetDeadBandDelay(etpwmREG1,112,112);
etpwmSetDeadBandDelay(etpwmREG2,112,112);
etpwmSetDeadBandDelay(etpwmREG3,112,112);
etpwmEnableDeadBand (etpwmREG1,死带宽配置);
etpwmEnableDeadBand (etpwmREG2,死带宽配置);
etpwmEnableDeadBand (etpwmREG3,死带宽配置);
ADC 从 RAM 读取:
#define adc1Group1_ReadFirst (*(volatile UINT32 *) 0xFF3E0000U)
#define adc1Group1_ReadSecond (*(volatile UINT32 *) 0xFF3E0004U)
#define adc1Group2_ReadFirst (*(volatile UINT32 *) 0xFF3A0000U)
#define adc1Group2_ReadSecond (*(volatile UINT32 *) 0xFF3A0004U)
#define adc1Group1FLAG (*(volatile UINT32 *) 0xFFF7C038U)
#define adc2Group1FLAG (*(volatile UINT32 *) 0xFFF7C238U)
#define adc1Group1RAMReset (*(volatile UINT32 *) 0xFFF7C014U)
#define adc2Group1RAMReset (*(volatile UINT32 *) 0xFFF7C214U)
短语 A
如果(%<U1_val>=1){
%<Y1_val>= adc1Group1_ReadFirst & 0xFFFU;
}
否则,如果(%<U1_val>=0)
{
%.<y1_val>= adc1Group1_ReadSecond 和0xFFFU;
}
否则
{
%<Y1_val>=255;
}
adc1Group1RAMReset|=0x00000010U;
adc1Group1FLAG|=0x09U;
阶段 B
如果(%<U1_val>=1){
%<Y1_val>= adc1Group2_ReadFirst & 0xFFFU;
}
否则,如果(%<U1_val>=0)
{
%.<y1_val>= adc1Group2_ReadSecond 和0xFFFU;
}
否则
{
%<Y1_val>=255;
}
附加的用于壁龛配置的.DIL:
