12 void Sensors_ProcessCapacitanceData(
void);
14 uint8_t capdac_values[4] = {0,0,0,0};
15 double capacitance_values[4] = {0,0,0,0};
26 UART_PutString(
"FDC Library Test\n");
30 char message[60] = {
'\0'};
36 for (uint8_t reg = 0; reg < 0x14; reg++)
40 sprintf(message,
"0x%02X: 0x%04x\n", reg, (temp[1] << 8 | temp[0]));
41 UART_PutString(message);
48 for (
int i = 0; i < 5; i++)
52 Connection_Led_Write(1);
65 sprintf(message,
"\n\nManufacturer ID: 0x%02X\r\n", temp);
66 UART_PutString(message);
70 UART_PutString(
"Could not read manufacturer ID\r\n");
76 sprintf(message,
"Device ID: 0x%02X\r\n", temp);
77 UART_PutString(message);
100 for (uint8_t reg = 0; reg < 0x15; reg++)
104 sprintf(message,
"0x%02X: 0x%04x\n", reg, (temp[0] << 8 | temp[1]));
105 UART_PutString(message);
118 if ( (temp[1] & 0xF) == 0x0F)
124 Sensors_ProcessCapacitanceData();
128 for (uint8_t ch = 0; ch < 4; ch++)
130 sprintf(message,
"%1d | %2d - %3d.%02d |\n", ch, capdac_values[ch],
131 (
int)(capacitance_values[ch]),
132 ((
int)(capacitance_values[ch]*100))%100);
133 UART_PutString(message);
135 UART_PutString(
"\n");
139 for (uint8 ch = 0; ch < 4; ch++)
141 capdac_values[ch] = 0;
151 void Sensors_ProcessCapacitanceData(
void)
153 for (uint8_t ch = 0; ch < 4; ch++)
161 if (capdac_values[ch] < 31)
163 capdac_values[ch] += 1;
#define FDC_CH_1
FDC Capacitance channel 1.
#define FDC_RP_CH_4
Repeat measurement for channel 4.
#define FDC_IN_4
Capacitance channel 4.
Hardware specific I2C interface.
#define FDC_CH_2
FDC Capacitance channel 2.
Register map for the FDC1004Q component.
#define FDC_CH_4
FDC Capacitance channel 4.
#define FDC_400_Hz
400 Samples/second sample rate.
uint8_t FDC_DisableRepeatMeasurement(void)
Disable repated measurement.
Header file for the FDC1004Q driver.
#define FDC_CAPDAC
CAPDAC input.
uint8_t FDC_ReadManufacturerId(uint16_t *id)
Read the manufacturer ID from the sensor.
uint8_t FDC_ReadDeviceId(uint16_t *id)
Read the device ID from the sensor.
#define FDC_RP_CH_2
Repeat measurement for channel 2.
uint8_t FDC_StopMeasurement(uint8_t channel)
Stop measurement for given channel.
uint8_t FDC_IsDeviceConnected(void)
Check if device is connected on the I2C bus.
#define FDC_IN_3
Capacitance channel 3.
#define FDC_CAPDAC_FACTOR
CAPDAC multiplying factor.
uint8_t FDC_ReadRawMeasurement(uint8_t channel, uint32_t *capacitance)
Read capacitance measurement in raw format.
uint8_t FDC_ReadMeasurement(uint8_t channel, double *capacitance)
Read capacitance measurement in double format.
uint8_t FDC_EnableRepeatMeasurement(uint8_t channel_flags)
Enable repeated measurement.
#define FDC_OK
No error occurred.
#define FDC_RP_CH_3
Repeat measurement for channel 3.
uint8_t FDC_Start(void)
Start the FDC1004Q.
#define FDC_IN_2
Capacitance channel 2.
uint8_t FDC_SetSampleRate(uint8_t sampleRate)
Set up sample rate for continuous measurements.
#define FDC_RP_CH_1
Repeat measurement for channel 1.
#define FDC_IN_1
Capacitance channel 1.
#define FDC_CH_3
FDC Capacitance channel 3.
uint8_t FDC_ConfigureMeasurementInput(uint8_t meas_channel, uint8_t pos_channel, uint8_t neg_channel, uint8_t capdac)
Configure measurement input settings.
I2C_ErrorCode I2C_Peripheral_ReadRegisterMulti(uint8_t device_address, uint8_t register_address, uint8_t register_count, uint8_t *data)
Read multiple bytes over I2C.