Exemple #1
0
/*********************************************************************//**
 * @brief		c_entry: Main RIT program body
 * @param[in]	None
 * @return 		int
 **********************************************************************/
int c_entry (void) {

	/* Initialize debug via UART0
	 * – 115200bps
	 * – 8 data bit
	 * – No parity
	 * – 1 stop bit
	 * – No flow control
	 */
	debug_frmwrk_init();
	 _DBG(menu);

	RIT_Init(LPC_RIT);
	/* Configure time_interval for RIT
	 * In this case: time_interval = 1000 ms = 1s
	 * So, RIT will generate interrupt each 1s
	 */
	RIT_TimerConfig(LPC_RIT,TIME_INTERVAL);

	_DBG("The time interval is: ");
	_DBD32(TIME_INTERVAL); _DBG_(" millisecond..");

#ifdef MCB_LPC_1768 /* Using LED2.2 for testing */
	//turn on LED2.2
	FIO_SetDir(2,(1<<2),1);
	FIO_SetValue(2,(1<<2));
#elif defined(IAR_LPC_1768) /* Using LED1 (P1.25 for testing */
	FIO_SetDir(1,(1<<25),1);
	FIO_ClearValue(1,(1<<25));
#endif
	NVIC_EnableIRQ(RIT_IRQn);

	while(1);
	return 1;
}
Exemple #2
0
inline void LatchIn(void){
#if 0
	for(uint32_t i=0;i<DelayLatchIn;i++){
		asm("nop");
	}
#endif
//	ticks_at_LE_start = ticks;
	FIO_SetValue(LED_LE_PORT, LED_LE_BIT);
#if 0
	for(uint32_t i=0;i<5;i++){
		asm("nop");
	}
#endif
//	ticks_at_LE_finish = ticks;
	FIO_ClearValue(LED_LE_PORT, LED_LE_BIT);
#if 0
	for(uint32_t i=0;i<10;i++){
		asm("nop");
	}
#endif
//	ticks_at_OE_start = ticks;
	FIO_ClearValue(LED_OE_PORT, LED_OE_BIT);
/*	xprintf("SB:%d ",SEND_BIT);
	xprintf("DMS_S:%d ",ticks_at_DMA_start);
	xprintf("DMS_F:%d ",ticks_after_DMA_finish);
	xprintf("DMS_LE_S:%d ",ticks_at_LE_start);
	xprintf("DMS_LE_F:%d ",ticks_at_LE_finish);
	xprintf("DMS_OE_S:%d\n",ticks_at_OE_start);*/
}
Exemple #3
0
void spi_transfer(volatile U8* buf, U16 len, U8 toggle_cs)
{
	U16 i;

//	ZG2100_CSoff();
	FIO_ClearValue(WF_CS_PORT, WF_CS_BIT);

//	for (i = 0; i < len; i++) {
//		ZG2100_SpiSendData(buf[i]);		// Start the transmission
//		buf[i] = ZG2100_SpiRecvData();
//	}

	SSP_DATA_SETUP_Type xferConfig;
	xferConfig.tx_data = buf;
	xferConfig.rx_data = buf;
	xferConfig.length = len;

	SSP_ReadWrite (WF_SPI_CHN, &xferConfig, SSP_TRANSFER_POLLING);

	if (toggle_cs) {
//		ZG2100_CSon();
		FIO_SetValue(WF_CS_PORT, WF_CS_BIT);
	}

	return;
}
/* Example of usage: digital_write(PORT_0, X_STEP_PIN, HIGH); */
void digital_write(uint8_t portNum, uint32_t bitValue, uint8_t state)
{
    if (state)
        FIO_SetValue(portNum, bitValue);

    else
        FIO_ClearValue(portNum, bitValue);
}
Exemple #5
0
void  write_pin (tPinDef pin, uint8_t state)
{
  if (pin.port != UNDEFINED_PORT)
  {
    if (state ^ pin_is_active_low (pin.modes))
      FIO_SetValue (pin.port, _BV(pin.pin_number));
    else
      FIO_ClearValue (pin.port, _BV(pin.pin_number));
  }
}
Exemple #6
0
int _FIO_SetValue(uint8_t * args)
{
	uint8_t * arg_ptr;
	uint8_t portNum;
	uint32_t bitValue;

	if ((arg_ptr = (uint8_t *) strtok(NULL, " ")) == NULL) return 1;
	portNum = (uint8_t) strtoul((char *) arg_ptr, NULL, 16);
	if ((arg_ptr = (uint8_t *) strtok(NULL, " ")) == NULL) return 1;
	bitValue = (uint32_t) strtoul((char *) arg_ptr, NULL, 16);

	FIO_SetValue(portNum, bitValue);
	return 0;
}
Exemple #7
0
void TIMER0_IRQHandler(void){
//	xprintf("TIMER0_IRQ");
	if (TIM_GetIntStatus(LPC_TIM0,TIM_MR0_INT)){
		TIM_ClearIntPending(LPC_TIM0, TIM_MR0_INT);
#if 0
		if(TOG[0])
//			FIO_SetValue(LED_LE_PORT, LED_LE_BIT);
			GPIO_SetValue(LED_4_PORT, LED_4_BIT);
		else
//			FIO_ClearValue(LED_LE_PORT, LED_LE_BIT);
			GPIO_ClearValue(LED_4_PORT, LED_4_BIT);
		TOG[0]=!TOG[0];
//		TIM_ClearIntPending(LPC_TIM0, TIM_MR0_INT);
//		return;
#endif
//		xprintf(INFO "RIT N=%d B=%x NXT_T=%d TX=%x\n",SENDSEQ,SEND_BIT,DELAY_TIME,LED_PRECALC[0][SEND_BIT]);

		//Setup new timing for next Timer
		DELAY_TIME=SEQ_TIME[SENDSEQ];
		SEND_BIT=SEQ_BIT[SENDSEQ];

		//Retart sequence if required
		SENDSEQ++;
		SENDSEQ>=no_SEQ_BITS ? SENDSEQ=0 : 0;

#ifdef DMA
//		xprintf("SEND_BIT:%d\n",SEND_BIT);
//		xprintf("DELAY_TIME:%d\n",DELAY_TIME);
		GPDMACfg.DMALLI = (uint32_t) &LinkerList[0][SEND_BIT][BufferNo];
		GPDMA_Setup(&GPDMACfg);
		GPDMA_ChannelCmd(0, ENABLE);
#endif
		TIM_UpdateMatchValue(LPC_TIM0,0,DELAY_TIME);
		FIO_SetValue(LED_OE_PORT, LED_OE_BIT);
#ifdef RxDMA
		GPDMA_ChannelCmd(1, ENABLE);
		uint8_t reg;
		for(reg=6; 0<reg;reg--){
			xprintf("%d ",reg-1);
#if 0
			if(BUFFER==1)
				SSP_SendData(LED_SPI_CHN, LED_PRECALC1[reg][SEND_BIT]);
			else
				SSP_SendData(LED_SPI_CHN, LED_PRECALC2[reg][SEND_BIT]);
#endif
			//WaitForSend();//Wait if TX buffer full
			//while(LED_SPI_CHN->SR & SSP_STAT_BUSY);
			while(SSP_GetStatus(LED_SPI_CHN, SSP_STAT_BUSY)){
			};
			SSP_SendData(LED_SPI_CHN, LED_PRECALC[reg-1][SEND_BIT]);
			xprintf("%4x ",(LED_PRECALC[reg-1][SEND_BIT]));
		}
		for(reg=12; reg>6;reg--){
			xprintf("%d ",reg-1);
#if 0
			if(BUFFER==1)
				SSP_SendData(LED_SPI_CHN, LED_PRECALC1[reg][SEND_BIT]);
			else
				SSP_SendData(LED_SPI_CHN, LED_PRECALC2[reg][SEND_BIT]);
#endif
			//WaitForSend();//Wait if TX buffer full
			while(SSP_GetStatus(LED_SPI_CHN, SSP_STAT_BUSY)){
			}
			SSP_SendData(LED_SPI_CHN, LED_PRECALC[reg-1][SEND_BIT]);
//			if (reg==7){
				xprintf("%4x ",(LED_PRECALC[reg-1][SEND_BIT]));
//			}
		}
		LatchIn();
#endif
/*		UPDATE_COUNT+=1;
		ATE_COUNT=0;
			LED_UPDATE_REQUIRED=1;
		}*/
	}
}
Exemple #8
0
void GPIO::set() {
	FIO_SetValue(port, 1UL << pin);
}
Exemple #9
0
void GPIO::write(uint8_t value) {
	if (value)
		FIO_SetValue(port, 1UL << pin);
	else
		FIO_ClearValue(port, 1UL << pin);
}