Thread 中讨论的其他器件:C2000WARE
工具与软件:
您好!
我试图进入中断函数 ADC_ISR()、但它直接进入下一个 InitCpuTimer()。 我怎么能做到这一点?
谢谢!
-黄梅湾
-------------------------------------------------------
整个主代码如下所示。
空洞 主电源 ( 空洞 )
{
//步骤1. 初始化系统控制:
//此示例函数可在 F2837xD_SYSCTRL.c 文件中找到。
InitSysCtrl();
//步骤2. 初始化 GPIO:
//此示例函数可在 F2837xD_GPIO.c 文件中找到、并且
//说明了如何将 GPIO 设置为其默认状态。
InitGpio();
InitEPwmGpio_tz();
InitEPwmGpio();
EALLOW;
GPIO_SetupPinOptions (72、GPIO_output、GPIO_PushPull);
GPIO_SetupPinOptions (84、GPIO_output、GPIO_PushPull);
EDIS;
//步骤3. 清除所有中断并初始化 PIE 矢量表:
//禁用 CPU 中断
颜色;
//将 PIE 控制寄存器初始化为默认状态。
//默认状态是禁用所有 PIE 中断并显示标志
//被清除。
//此函数位于 F2837xD_PIECTRL.c 文件中。
InitPieCtrl();
//禁用 CPU 中断并清除所有 CPU 中断标志
IER = 0x0000;
IFR = 0x0000;
//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//此函数可在 F2837xD_PieVect.c 中找到
InitPieVectTable();
//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
EALLOW; //要写入 EALLOW 保护的寄存器、需要执行此操作
PieVectTable.ADCD1_INT =&ADC_ISR;
EDIS; //这是禁用对 EALLOW 保护寄存器的写入所必需的
//步骤4. 初始化器件外设:
InitCpuTimers (); //在这个示例中、只初始化 CPU 计时器
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =0;
ClkCfgRegs.PERCLKDIVSEL.bit.EPWMCLKDIV = 0;
EDIS;
initEpwms();
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =1;
EDIS;
//配置 ADC 并为其加电
ConfigureADC();
//设置 ADC 以进行软件转换
SetupADCEpwm();
//配置 DAC
dac_debug();
//初始化
Param_Init ((dcParam_t*)&dc);
//步骤5。 用户专用代码、启用中断:
IER |= M_INT1;
//启用 PIE:组1中断1
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
EINT; //启用全局中断 INTM
erTM; //启用全局实时中断 DBGM
//开始无限循环
的说明 (;-)
{
GPIO_WritePin (72、1);
GPIO_WritePin (84、1);
}//end of infinite loop
}//end of main function