void APP_Run(void) { Init(); SendString((unsigned char*) "Hello World\r\n", &uartData); DataFrameRxFlg = FALSE; DataFrameTxFlg = FALSE; for (;;) { while (CAN_RxBuff_NofElements()) { unsigned char ch; //receive frame (buffer 0) CAN_RxBuff_Get(&ch); SendString((unsigned char*) "echo: ", &uartData); SendChar(ch, &uartData); SendString((unsigned char*) "\r\n", &uartData); } GREENLED_NegVal(GREENLED_DeviceData); // Wait counter reset TU1_ResetCounter(TU1_DeviceData); // wait 500 ticks (aaprox 0.5s) while (TU1_GetCounterValue(TU1_DeviceData) < 500) { }; } }
void US_EventEchoCapture(LDD_TUserData *UserDataPtr){ US_DeviceType *ptr = (US_DeviceType*)UserDataPtr; if (ptr->state==ECHO_TRIGGERED) { /* 1st edge, this is the raising edge, start measurement */ //LED_SetVal(); TU1_ResetCounter(ptr->echoDevice); ptr->state = ECHO_MEASURE; } else if (ptr->state==ECHO_MEASURE) { /* 2nd edge, this is the falling edge: use measurement */ (void)TU1_GetCaptureValue(ptr->echoDevice, 0, &ptr->capture); ptr->state = ECHO_FINISHED; } }
static void REF_MeasureRaw(SensorTimeType raw[NOF_SENSORS]) { uint8_t cnt; /* number of sensor */ uint8_t i; TMOUT1_CounterHandle timeout; FRTOS1_xSemaphoreTake(mutexHandle, portMAX_DELAY); if (ledON) { LED_IR_On(); /* IR LED's on */ WAIT1_Waitus(200); } for(i=0;i<NOF_SENSORS;i++) { SensorFctArray[i].SetOutput(); /* turn I/O line as output */ SensorFctArray[i].SetVal(); /* put high */ raw[i] = MAX_SENSOR_VALUE; } WAIT1_Waitus(20); /* give at least 10 us to charge the capacitor */ timeout = TMOUT1_GetCounter(20/TMOUT1_TICK_PERIOD_MS); /* set up timeout counter */ FRTOS1_vTaskSuspendAll(); (void)TU1_ResetCounter(timerHandle); /* reset timer counter */ for(i=0;i<NOF_SENSORS;i++) { SensorFctArray[i].SetInput(); /* turn I/O line as input */ } do { cnt = 0; if (TMOUT1_CounterExpired(timeout)) { break; /* get out of wile loop */ } for(i=0;i<NOF_SENSORS;i++) { if (raw[i]==MAX_SENSOR_VALUE) { /* not measured yet? */ if (SensorFctArray[i].GetVal()==0) { raw[i] = TU1_GetCounterValue(timerHandle); } } else { /* have value */ cnt++; } } } while(cnt!=NOF_SENSORS); TMOUT1_LeaveCounter(timeout); FRTOS1_xTaskResumeAll(); if (ledON) { LED_IR_Off(); /* IR LED's off */ WAIT1_Waitus(200); } FRTOS1_xSemaphoreGive(mutexHandle); }
/* ===================================================================*/ LDD_TError FC1_ResetCounter(LDD_TUserData *DeviceDataPtr) { FC1_TDeviceData *DeviceDataPrv = (FC1_TDeviceData *)DeviceDataPtr; return TU1_ResetCounter(DeviceDataPrv->LinkedDeviceDataPtr); /* Reset counter register */ }