void Test() { PinInit(); IO0DIR=1<<29|1<<30;//P0.29,P0.30必须同为输出才能输出(SSP0的片选). UARTInit(0,115200); //FCMessageSend("TestMode"); CANTest(); while(1) { /* uint8 c; uint16 t=FPGARead(TESTFPGA); UARTSendChar(0,0xff); c=t; UARTSendChar(0,c); c=t>>8; UARTSendChar(0,c); SSPSendByte(0,0xff); for(t=0;t<1024;t++) {;} */ } }
uint8 InitDevice()//TODO:异常处理 { uint8 r=0,t=0; //GPIO PinInit(); IO0DIR=1<<29|1<<30;//P0.29,P0.30必须同为输出才能输出(SSP0的片选). //GpioSpeedHigh();//全局高速模式,因为P0.29问题无法使用。 //指示系统启动 LED1ON(); //UART0-GCS r+=UARTInit(FCUARTPORT,FCUARTBPS);//UART0-PC UARTSendChar(FCUARTPORT,0x40); UARTSendChar(FCUARTPORT,0x40); //UART2-INS r+=UARTInit(INSUARTPORT,INSUARTBPS); //UARTSendChar(2,0x40); //UARTSendChar(2,0x40); //SSP0-FPGA r+=SSP0FPGAMode(); //r+=SPIInit(); //while(1) //{ t=FPGACheck(); //} if(t==TRUE) { FCEventSend(OKFPGA); } else { FCEventSend(ErrFPGA); } r+=t; //SSP1-FLASH r+=FlashInit(FlashQueueSize); //Timer0-MainLoop r+=TimerInit(0,1000/MainLoopHz); TimerDisable(0); //TimerEnable(0); //Timer1-Time+LED1 r+=TimerInit(1,1000); TimerEnable(1); //Timer2-Working-LED2 r+=TimerInit(2,100); TimerDisable(2); //启动中断 IRQEnable(); return r; }
CAN *ts4800__CANInit1(CAN *can,int inst) { ts4800CAN1.LockBase = 3; ts4800CAN1.status = 0; ts4800CAN1.CAN_TX = 10; ts4800CAN1.CAN_RX = 11; ts4800CAN1.D.conn = ts4800CAN1conn; ts4800CAN1.D.maxconn = 16; ts4800CAN1.D.nconn = 0; ts4800CAN1.D.txc = 0; ts4800CAN1.baud = 1000000; ts4800CAN1.baudparms = baudparms25; ts4800CAN1.irq = 274; return SJA1000CANInit(&ts4800CAN1,ts4800__BusInit15(0,15),PinInit(0), ts4800__TimeInit0(0,0)); }
CAN *ts4800__CANInit0(CAN *can,int inst) { ts4800CAN0.LockBase = 2; ts4800CAN0.status = 0; ts4800CAN0.CAN_TX = 47; ts4800CAN0.CAN_RX = 45; ts4800CAN0.D.conn = ts4800CAN0conn; ts4800CAN0.D.maxconn = 16; ts4800CAN0.D.nconn = 0; ts4800CAN0.D.txc = 0; ts4800CAN0.baud = 1000000; ts4800CAN0.baudparms = baudparms25; ts4800CAN0.irq = 273; return SJA1000CANInit(&ts4800CAN0,ts4800__BusInit14(0,14),PinInit(0), ts4800__TimeInit0(0,0)); }
void LCD1602::Init() { PinInit(); Brightness(false); RW(false); RS(false); DB4(0); E(false); // Wait 50 ms from power on delay_ms(50); DB4(3); // Run three clock cycles to init E(true); LCD_DELAY_SHORT; E(false); LCD_DELAY_LONG; E(true); LCD_DELAY_SHORT; E(false); LCD_DELAY_SHORT; E(true); LCD_DELAY_SHORT; E(false); LCD_DELAY_SHORT; // Configure display DB4(2); E(true); LCD_DELAY_SHORT; E(false); LCD_DELAY_LONG; DB(0x28); LCD_DELAY_SHORT; DB(0x8); LCD_DELAY_SHORT; DB(0x1); LCD_DELAY_SHORT; DB(0x6); LCD_DELAY_SHORT; RS(false); DB(0x0c); LCD_DELAY_LONG; // Test code, TODO Locate(0, 0); Print(" ld analyzer b1 "); Locate(0, 1); Print(" analyzer-1 "); //Brightness(true); Contrast(false); // Enable SCT peripheral clock CGU_ConfigPWR(CGU_PERIPHERAL_SCT, ENABLE); LPC_CCU1->CLK_M4_SCT_CFG |= CCU1_CLK_M4_SCT_CFG_RUN_Msk; while(!(LPC_CCU1->CLK_M4_SCT_STAT & CCU1_CLK_M4_SCT_STAT_RUN_Msk)); scu_pinmux(0x1, 5, GPIO_PUP, FUNC1); // CTOUT_10 LPC_SCT->CONFIG = (1 << 17); LPC_SCT->CTRL_L |= (12-1) << 5; LPC_SCT->MATCHREL[0].L = 100-1; LPC_SCT->MATCHREL[1].L = 1; LPC_SCT->EVENT[0].STATE = 0xFFFFFFFF; LPC_SCT->EVENT[0].CTRL = (1 << 12); LPC_SCT->EVENT[1].STATE = 0xFFFFFFFF; LPC_SCT->EVENT[1].CTRL = (1 << 12) | (1 << 0); LPC_SCT->OUT[10].SET = (1 << 0); LPC_SCT->OUT[10].CLR = (1 << 1); LPC_SCT->CTRL_L &= ~(1 << 2); InitFont(); // Fade in for (int i = 0; i < 100; i++) { LPC_SCT->MATCHREL[1].L = i; delay_ms(10); } }