generated from hulk/gd32e23x_template
Compare commits
2 Commits
db780ba529
...
688866108c
Author | SHA1 | Date | |
---|---|---|---|
688866108c | |||
fd2f72914d |
@ -9,6 +9,8 @@
|
||||
|
||||
// #define DEBUG_VERBOES
|
||||
|
||||
#define DEBUG_VOFA_TOOL
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
#define RCU_GPIO_I2C RCU_GPIOF
|
||||
|
@ -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();
|
||||
}
|
||||
|
10
src/rs485.c
10
src/rs485.c
@ -131,6 +131,15 @@ void eddy_current_value_report(void) {
|
||||
package_data[2] = (eddy_current_value_uint32 >> 8) & 0xFF;
|
||||
package_data[3] = eddy_current_value_uint32 & 0xFF;
|
||||
|
||||
|
||||
#ifdef DEBUG_VOFA_TOOL
|
||||
printf("%d\n", eddy_current_value_uint32);
|
||||
#else
|
||||
package_data[0] = (eddy_current_value_uint32 >> 24) & 0xFF;
|
||||
package_data[1] = (eddy_current_value_uint32 >> 16) & 0xFF;
|
||||
package_data[2] = (eddy_current_value_uint32 >> 8) & 0xFF;
|
||||
package_data[3] = eddy_current_value_uint32 & 0xFF;
|
||||
|
||||
uint8_t combined_data[7];
|
||||
memcpy(combined_data, package_header, 3);
|
||||
memcpy(combined_data + 3, package_data, 4);
|
||||
@ -138,6 +147,7 @@ void eddy_current_value_report(void) {
|
||||
printf("%c%c%c", package_header[0], package_header[1], package_header[2]);
|
||||
printf("%c%c%c%c", package_data[0], package_data[1], package_data[2], package_data[3]);
|
||||
printf("%c", calculate_crc(combined_data, 8));
|
||||
#endif
|
||||
}
|
||||
|
||||
void tempture_value_report(void) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user