示例#1
0
文件: Main.c 项目: sexroute/vfly-fc
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++)
		{;}
		*/
	}
}
示例#2
0
文件: Init.c 项目: sexroute/vfly-fc
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;
}
示例#3
0
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));
}
示例#4
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));
}
示例#5
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);
	}
}