generated from hulk/gd32e23x_template
auto detect
This commit is contained in:
parent
fd2f72914d
commit
688866108c
@ -51,6 +51,7 @@
|
||||
#define LDC1612_DRIVE_CURRENT 0x9000 //A000
|
||||
#define LDC1612_MUX_CONFIG 0x020C // no auto scan and filter bandwidth 3.3MHz
|
||||
#define LDC1612_SENSOR_CONFIG 0x1601
|
||||
#define LDC1612_SLEEP_MODE 0x2801
|
||||
#define LDC1612_ERROR_CONFIG 0x0000
|
||||
#define LC_STABILIZE_TIME_CH0 0x001E //30
|
||||
#define LDC1612_RESET_DEV 0x8000 //[15:0] 0b1000 0000 0000 0000
|
||||
@ -94,4 +95,6 @@ uint32_t ldc1612_get_raw_channel_result(uint8_t channel);
|
||||
|
||||
uint32_t ldc1612_parse_raw_result(uint32_t raw_result);
|
||||
|
||||
void ldc1612_drvie_current_detect(uint8_t channel);
|
||||
|
||||
#endif //LDC1612_H
|
||||
|
@ -276,3 +276,20 @@ uint32_t ldc1612_parse_raw_result(uint32_t raw_result) {
|
||||
|
||||
return raw_result;
|
||||
}
|
||||
|
||||
void ldc1612_drvie_current_detect(uint8_t channel) {
|
||||
uint8_t data[2] = {0};
|
||||
uint16_t init_value = 0 , drive_current = 0;
|
||||
|
||||
ldc1612_set_sensor_config(LDC1612_SLEEP_MODE);
|
||||
ldc1612_set_freq_divide(channel);
|
||||
soft_i2c_read_16bits(LDC1612_ADDR, SENSOR_CONFIG_REG, data);
|
||||
ldc1612_set_sensor_config(LDC1612_SLEEP_MODE);
|
||||
ldc1612_set_sensor_config(LDC1612_SENSOR_CONFIG); //0x1A --0x1601
|
||||
delay_ms(10);
|
||||
soft_i2c_read_16bits(LDC1612_ADDR, SET_DRIVER_CURRENT_REG, data);
|
||||
|
||||
init_value = (((data[0] << 8) | data[1]) >> 6) & 0x1F;
|
||||
drive_current = (init_value << 11) | 0x0000;
|
||||
printf("init value: 0x%x\tdrive current: 0x%x\n", init_value, drive_current);
|
||||
}
|
14
src/main.c
14
src/main.c
@ -33,7 +33,7 @@ int main(void) {
|
||||
#endif
|
||||
|
||||
/* configure LDC1612 */
|
||||
// ldc1612_single_ch0_config();
|
||||
ldc1612_single_ch0_config();
|
||||
|
||||
/* Initialize watchdog */
|
||||
// watchdog_init();
|
||||
@ -41,17 +41,7 @@ int main(void) {
|
||||
while (1) {
|
||||
|
||||
// delay_ms(10);
|
||||
uint8_t data[2] = {0};
|
||||
ldc1612_set_freq_divide(CHANNEL_0);
|
||||
soft_i2c_read_16bits(LDC1612_ADDR, SENSOR_CONFIG_REG, data);
|
||||
printf("SENSOR_CONFIG_REG: 0x%x\n", (data[0] << 8) | data[1]);
|
||||
soft_i2c_write_16bits(LDC1612_ADDR, SENSOR_CONFIG_REG, (data[0] << 8) | data[1]);
|
||||
ldc1612_set_sensor_config(LDC1612_SENSOR_CONFIG); //0x1A --0x1601
|
||||
delay_ms(100);
|
||||
soft_i2c_read_16bits(LDC1612_ADDR, SET_DRIVER_CURRENT_REG, data);
|
||||
printf("sensor config: 0x%x\n", (data[0] << 8) | data[1]);
|
||||
printf("sensor config: 0x%x\n", (((data[0] << 8) | data[1]) >> 6) & 0x1F);
|
||||
printf("drive current value: 0x%x\n", (((((data[0] << 8) | data[1]) >> 6) & 0x1F) << 11) | 0x0000);
|
||||
ldc1612_drvie_current_detect(CHANNEL_0);
|
||||
delay_ms(999);
|
||||
// fwdgt_counter_reload();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user