Part Number: TMS320F28069
Other Parts Discussed in Thread: C2000WARE
Tool/software: Code Composer Studio
I am initializing watchdog in interrupt mode but the program is not hitting its ISR as I can see in debug mode. This program also uses Timer0 ISR which is present in same PIE group (that is working properly). Can I use only one interrupt of a PIE group or any register left for initialization? Moreover, What should I put in WAKEINT ISR to start int main() again.
#define WDINTS_STATUS (1 << 2)
#define WDINT_SET (1 << 1)
//WDCR: Watchdog control Register
#define WDFLAG_ENABLE (1 << 7)
#define WDDIS_ENABLE (0 << 6)
#define WDCHK_WRITE 0x28
#define PRESCALER_111 0X07 //0x7: (1/10Mhz)*512*64*256= 838 mSec
#define PRESCALER_110 0X06 //0x6: (1/10Mhz)*512*32*256= 419 mSec
#define PRESCALER_101 0X05 //0x5: (1/10Mhz)*512*16*256= 209 mSec
void Watchdog_config (void)
{
EALLOW;
SysCtrlRegs.SCSR= WDINT_SET; //No need// //Enable Watchdog interrupt
SysCtrlRegs.WDCR = WDFLAG_ENABLE |WDCHK_WRITE |PRESCALER_101; // Set the highest prescaler
SysCtrlRegs.WDKEY = 0x0055; // Service Dog
SysCtrlRegs.WDKEY = 0x00AA;
PieCtrlRegs.PIEIER1.bit.INTx8 = CPT_SET_FLAG;
EDIS;
}
__interrupt void WAKEINT_ISR(void)
{
int ran2;
ran2=4; //Breakpoint here
//What to put to reset the program again
}