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);*/ }
/*********************************************************************//** * @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; }
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); }
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)); } }
int _FIO_ClearValue(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_ClearValue(portNum, bitValue); return 0; }
void GPIO::clear() { FIO_ClearValue(port, 1UL << pin); }
void GPIO::write(uint8_t value) { if (value) FIO_SetValue(port, 1UL << pin); else FIO_ClearValue(port, 1UL << pin); }