在线时间0 小时
UID329976
注册时间2011-11-22
NXP金币0
该用户从未签到
注册会员

- 积分
- 172
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2011-12-16 15:58:49
|
显示全部楼层
RE:CAN
直接贴代码吧,就是发送的时候用CANoe接收不到信号,也就是报文没有发出来。
void initPIT(void)
{
PIT.PITMCR.R = 0x00000001;
PIT.PITMCR.B.MDIS = 1;
PIT.CH[0].LDVAL.R = 64000000;
PIT.CH[0].TCTRL.R = 0x03;
INTC_InstallINTCInterruptHandler(PITISR,59,2);
PIT.PITMCR.B.MDIS = 0;
INTC.CPR.B.PRI = 0;
}
void initModesAndClks(void) {
ME.MER.R = 0x0000001D; // Enable DRUN, RUN0, SAFE, RESET Modes
CGM.CMU_0_CSR.R = 0x000000004;
// 8 MHz XTAL: Set PLL0 To 64 MHz
// 0x05400100: 0000 0101 0100 0000 0000 0001 0000 0000
CGM.FMPLL[0].CR.B.IDF = 1;
CGM.FMPLL[0].CR.B.ODF = 1;
CGM.FMPLL[0].CR.B.NDIV = 64;
CGM.FMPLL[0].CR.B.EN_PLL_SW = 1;
ME.RUN[0].R = 0x001F0074; // RUN0 Configuration: 16MHz IRCON, OSC0ON, PLL0ON, SysClk = PLL0
ME.RUNPC[1].R = 0x00000010; // Peripheral Configuration 1 Settings: Only Run In RUN0 Mode
ME.PCTL[92].R = 0x01;
ME.PCTL[16].R = 0x01; /* MPC56xxB/P/S FlexCAN0: select ME.RUNPC[1] */
ME.PCTL[26].R = 0x01; /* MPC56xxP SafetyPort: select ME.RUNPC[1] */
ME.MCTL.R = 0x40005AF0;
ME.MCTL.R = 0x4000A50F;
while(ME.GS.B.S_MTRANS) {}
while(ME.GS.B.S_CURRENTMODE != 4) {}
}
void disableWatchdog(void) {
SWT.SR.R = 0x0000c520; /* Write keys to clear soft lock bit */
SWT.SR.R = 0x0000d928;
SWT.CR.R = 0x8000010A; /* Clear watchdog enable (WEN) */
}
void initCAN_0 (void) {
uint8_t i;
CAN_0.MCR.R = 0x5000001F; /* Put in Freeze Mode & enable all 32 msg bufs */
/* Use 1 of the next 2 lines depending on crystal frequency: */
CAN_0.CR.R = 0x04DB0006; /* Configure for 8MHz OSC, 100KHz bit time */
CAN_0.RXGMASK.R = 0xFFFFFFFF;
for (i=0; i |
|