void g_v_initRTI(void)
{
uint8_t s_u8_howManyMs_DMS = 0; //
s_u8_howManyMs_DMS = ((CN_CTRLTORQUE_PERIOD_US * 1000)/(1000L * CN_OSC_PERIOD_NS)) - 1;
CPMURTI_RTDEC = 1;//0-Binary based divider value. See Table 8-11; 1-Decimal based divider value. See Table 8-12
//////////////////////////////
//here is 1000us
CPMURTI_RTR6 = 0;//
CPMURTI_RTR5 = 0;////6:4-These bits select the prescale rate for the RTI
CPMURTI_RTR4 = 0;//
CPMURTI_RTR3 = ((0x01 << 3) & s_u8_howManyMs_DMS) >> 3;//
CPMURTI_RTR2 = ((0x01 << 2) & s_u8_howManyMs_DMS) >> 2;////3:0-These bits select the modulus counter target value to provide additional granularity
CPMURTI_RTR1 = ((0x01 << 1) & s_u8_howManyMs_DMS) >> 1;////
CPMURTI_RTR0 = ((0x01 << 0) & s_u8_howManyMs_DMS) >> 0;//
///////////////////////////////
CPMUCLKS_RTIOSCSEL = 1;//0-RTI clock source is IRCCLK. 1-RTI clock source is OSCCLK.//internal RC OC 1MHz
CPMUINT_RTIE = 1;//1-enable interrupter,0-disable
}
这是我的一个初始化程序,你看看有无启示
|