我想持续记录analog input 的值,每次记录相隔8ms,然后加上时间,透过蓝牙传出去。但
1.我不知道怎么加上时间
2.在另外一个电池电压管理的例子中,如果我想alarm在电压低于2.5的时候提醒我,应该怎么改
3.如果用蓝牙的话,是不是要有TASK-UART Emulator
我写了以下的代码:
持续记录
//Create variable int
U16 int;
//Enable the input of INT
gpioEnableInputBuf(AUXIO_I_INT);
//Input the INT's value into int
gpioGetInputValue(AUXIO_I_INT; int);
if (int == 1){//Set DSET to be highgpioSetOutput(AUXIO_XD_DSET);// Select ADC inputadcSelectGpioInput(AUXIO_A_DOUT);// Enable the ADC;reference voltage is 4.7V and the sampling time is 2.7us; Timer triggeradcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_AUX_TIMER0);// Start ADC trigger timer at 12.5Hz (8ms)timer0Start(TIMER0_MODE_PERIODICAL, 24000,3);// Loop until the application sets the exit flagwhile (state.exit == 0) {// Wait for the next ADC sample and store itU16 n = state.head;adcReadFifo(output.pSamples[n]);// Update the head indexutilIncrAndWrap(n, BUFFER_SIZE; state.head);// If ALERT interrupt generation is enabledif (state.alertEnabled == 1){// Calculate the number of samples currently storedS16 count = state.head - state.tail;if (count < 0) {count += BUFFER_SIZE;}// If above the configured threshold ...if (count >= cfg.alertThr){// Generate ALERT interruptfwGenQuickAlertInterrupt();// Disable further generation to avoid unnecessary interrupts. It will be reenabled// by the application after handling the ALERT interrupt.state.alertEnabled = 0;}if (int==0){//clear the output on DsetgpioClearOutput(AUXIO_XD_DSET);// Generate ALERT interruptfwGenQuickAlertInterrupt();// Disable further generation to avoid unnecessary interrupts. It will be reenabled// by the application after handling the ALERT interrupt.state.alertEnabled = 0;}}}// Stop the ADC trigger and flush the ADC FIFOtimer0Stop();adcFlushFifo();// Disable the ADCadcDisable();
}
电池电压
// Select VDDS as input
adcSelectIntInput(ADC_INPUT_VDDS);
// Enable the ADC
adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);
// Measure and store the result
adcGenManualTrigger();
U16 adcValue;
adcReadFifo(adcValue);
output.adcValue = adcValue;
// Disable the ADC
adcDisable();
// Check whether to notify the application (every time when below, once when returning above)
if (cfg.alarmEnable == 1) {
if (adcValue < cfg.alarmThr) {
output.alarm = 1;
fwGenAlertInterrupt();
} else {
if (output.alarm == 1) {
output.alarm = 0;
fwGenAlertInterrupt();
}
}
}
// Schedule the next execution
fwScheduleTask(5);
Eggsy Pang:
直接参考sensor control的一个例程,叫做,Task Control
TI中文支持网


