主题中讨论的其他器件:C2000WARE
尊敬的专家:
我正在尝试初始化计时器和系统初始化。 我使 GPIO 开启和关闭了。 但是、我无法使用计时器和中断完成相同的任务、但是没有出现错误。 请参阅随附代码中的问题。 除此之外、我想知道此程序是否在200MHz 上已将微控制器注释掉。
#include "F28x_Project.h"
interrupt void timer_ovf_isr(void);
extern void InitSysCtrl(void);
void TimerInit();
void GpioInit();
int a =0;
void main(void)
{
InitSysCtrl();
TimerInit();
GpioInit();
DINT;
InitPieCtrl();
InitPieVectTable();
EALLOW;
EALLOW;
PieVectTable.TIMER0_INT = &timer_ovf_isr;
EDIS;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
IER |= 0x0001;
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
CpuTimer0Regs.TCR.bit.TSS = 0;
while(1)
{
//idle
}
}
void GpioInit(void)
{
GpioCtrlRegs.GPAGMUX1.bit.GPIO13 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO13 = 1;
GpioCtrlRegs.GPADIR.bit.GPIO12 = 1;
}
void TimerInit(void)
{
CpuTimer0Regs.PRD.bit.LSW = 0x02FF;
CpuTimer0Regs.PRD.bit.MSW = 0x002F;
CpuTimer0Regs.TPR.bit.TDDR = 0x001F;
CpuTimer0Regs.TCR.bit.TIE = 1;
CpuTimer0Regs.TCR.bit.TRB = 0;
CpuTimer0Regs.TCR.bit.TSS = 1;
CpuTimer0Regs.TCR.bit.FREE = 0;
}
void timer_ovf_isr(void)
{
GpioDataRegs.GPATOGGLE.bit.GPIO13 = 1;
GpioDataRegs.GPATOGGLE.bit.GPIO12 = 1;
CpuTimer0Regs.TCR.bit.TIF = 1;
PieCtrlRegs.PIEIFR1.bit.INTx7 = 0;
PieCtrlRegs.PIEACK.all = 0x0001;
}