Ejemplo n.º 1
0
void osTimerInterruptInitialize(void)
{
/* ************ BEGIN TARGET SPECIFIC SECTION **************/
    TimerInterval(0);
    (VPint(TDATA(0))) = gBUSCLK/100;
    TimerStart(0);

    Enable_Int(TIMER0_INT);
/* ************ END TARGET SPECIFIC SECTION **************/
}
Ejemplo n.º 2
0
void updateUserland(void)
{
	//J センサのバッファがいっぱいになっていた場合の処理
	if (sGetFlagOnce(sFlagSensorLogIsFull)) {
		char *str = sString;
		uint8_t idx = 1-sActiveIndex;
	
		for (int i=0 ; i<LOG_RECODE_SIZE ; ++i) {
			uint32_t len = sSensorDataToText(sSensorLog[idx][i].timeStamp, sSensorLog[idx][i].duty, sSensorLog[idx][i].distance, &sSensorLog[idx][i].data, str, SENSOR_RECODE_TEXT_LEN+1);
			str += len;
		}

		UINT len = 0;
		f_write(&sLogFile, (void *)sString, (str - sString), &len);
		f_sync(&sLogFile);
	}

	//J UARTからの距離計計測
	uint32_t len = uart_get_rxlen();
	while (len) {
		len--;
		
		uint8_t tmp = 0;
		uint32_t rlen = 0;
		(void)uart_rx_n(&tmp, 1, &rlen);
		(void)rlen;

		//J パケットの先頭(0x10)を探す
		if (sUartState == UART_WAIT_FOR_STX) {
			if (tmp == 0x10) {
				sUartState = UART_DATA_RECEIVING;
				
				sUartReceiveLen = 0;
				sUartReceiveBuf.byte[sUartReceiveLen++] = tmp;
			}
		}
		//J 見つけたら16バイト受信する
		else{
			sUartReceiveBuf.byte[sUartReceiveLen++] = tmp;

			if (sUartReceiveLen >= sizeof(DISTANCE_METER_PACKET)) {
				if (sUartReceiveBuf.byte[1]==0x02 && sUartReceiveBuf.byte[15]==0x03) {
					Disable_Int();
					sDistanceX += sUartReceiveBuf.packet.x;
					sDistanceY += sUartReceiveBuf.packet.y;
					Enable_Int();
				}
				
				sUartState = UART_WAIT_FOR_STX;
			}
		}
	}
			
	return;
}
Ejemplo n.º 3
0
void setupIRQEnv()
{
	//mask all interrupt
  	ClrIntStatus();
    //create interrupt handler table
  	creatIntHandlerTable();
    //register interrupt
  	setIRQHandler(nTIMER0_INT, Timer0_ISR); 
  	setIRQHandler(UART0_INT, UARTIrq); 
  	//setIRQHandler(nDMA0_INT, Dma0Done);
  	//setIRQHandler(nDMA1_INT, Dma1Done);
  	setIRQHandler(nDMA2_INT, IsrForUSBDma2);
  	//setIRQHandler(nDMA3_INT, Dma3Done);
  	setIRQHandler(nIIC_INT, IICInt);
  	setIRQHandler(nEXT8_23_INT,ExternIntDevice);
  	setIRQHandler(nUSBD_INT,usbIRQ);
  	
  	
  	
  	 //enable IRQ
  	enable_IRQ();
    //enable device interrupt
    Enable_EInt(IRQ_LAN);
  	Enable_Int(nTIMER0_INT);
  	Enable_Int(UART0_INT);
  	//Enable_Int(nDMA0_INT);
  	//Enable_Int(nDMA1_INT);
  	Enable_Int(nDMA2_INT);
  	//Enable_Int(nDMA3_INT);
  	Enable_Int(nIIC_INT);
  	Enable_Int(nEXT8_23_INT);
  	Enable_Int(nUSBD_INT);
}