Test code to try the touch screen driver out (CST816D)
This commit is contained in:
parent
857cfef622
commit
b5fc007404
@ -37,6 +37,7 @@ static void date_time_cb(struct tm * const dateTime)
|
||||
{
|
||||
if(!dateTime)return;
|
||||
tls_get_rtc(dateTime);
|
||||
//APP_LOG_DEBUG("RTC time : %d:%d:%d", dateTime->tm_hour, dateTime->tm_min, dateTime->tm_sec);
|
||||
}
|
||||
|
||||
WatchFace_t watchFace;
|
||||
@ -47,6 +48,7 @@ SettingsScreen_t settingsScreen;
|
||||
struct bma4_dev bma;
|
||||
struct bma4_accel_config accel_conf;
|
||||
struct bma456w_wrist_wear_wakeup_params setting;
|
||||
struct bma4_int_pin_config pin_config;
|
||||
uint16_t int_status;
|
||||
|
||||
static void setBrightnessCb(uint8_t brightness)
|
||||
@ -118,6 +120,18 @@ static void delay_us(uint32_t period, void *intf_ptr)
|
||||
}
|
||||
|
||||
|
||||
/*uint16_t x = 0, y = 0, action = 0;
|
||||
|
||||
static void touch_screen_isr(void *arg)
|
||||
{
|
||||
tls_clr_gpio_irq_status(WM_IO_PB_00);
|
||||
uint8_t tc_data[9];
|
||||
i2c_read(0x15, 0x00, tc_data, sizeof tc_data);
|
||||
x = ((tc_data[3] & 0x0f) << 8) | tc_data[4];
|
||||
y = ((tc_data[5] & 0x0f) << 8) | tc_data[6];
|
||||
action = tc_data[3] >> 6;
|
||||
}*/
|
||||
|
||||
void gfx_task(void *param)
|
||||
{
|
||||
APP_LOG_TRACE("starting");
|
||||
@ -131,7 +145,7 @@ void gfx_task(void *param)
|
||||
display_driver.hor_res = LCD_PIXEL_WIDTH;
|
||||
display_driver.ver_res = LCD_PIXEL_HEIGHT;
|
||||
|
||||
display_driver.rotated = LV_DISP_ROT_180;
|
||||
display_driver.rotated = LV_DISP_ROT_NONE;
|
||||
|
||||
lv_disp_draw_buf_init(&lvgl_draw_buffer_dsc, lvgl_draw_buffer, NULL, LVGL_GFX_BUFFER_SIZE);
|
||||
|
||||
@ -178,7 +192,7 @@ void gfx_task(void *param)
|
||||
lv_scr_load(watchFace.display);
|
||||
|
||||
/* Let's init the I2C interface */
|
||||
i2c_init(WM_IO_PA_04, WM_IO_PA_01, 400000);
|
||||
i2c_init(WM_IO_PA_04, WM_IO_PA_01, 100000);
|
||||
|
||||
uint8_t aliveCounter = 0;
|
||||
|
||||
@ -200,7 +214,8 @@ void gfx_task(void *param)
|
||||
else
|
||||
APP_LOG_INFO("QMC5883L configured");
|
||||
|
||||
QMC5883L_set_calibration_data(-900, 2500, -1400, 1400, 2300, 7500, 0.0);
|
||||
//QMC5883L_set_calibration_data(-900, 2500, -1400, 1400, 2300, 7500, 0.0);
|
||||
QMC5883L_set_calibration_data(4812, 8550, -3200, 20, -2200, 3500, 0.0);
|
||||
|
||||
/* Init the BMP280 */
|
||||
if(!BMP280_init())
|
||||
@ -223,7 +238,7 @@ void gfx_task(void *param)
|
||||
bma.delay_us = &(delay_us);
|
||||
bma.read_write_len = 46;
|
||||
bma.perf_mode_status = BMA4_DISABLE;
|
||||
|
||||
|
||||
if(bma456w_init(&bma) == BMA4_OK)
|
||||
APP_LOG_INFO("BMA456 init");
|
||||
else
|
||||
@ -258,18 +273,30 @@ void gfx_task(void *param)
|
||||
|
||||
APP_LOG_DEBUG("%d %d %d %d %d %d %d %d", setting.min_angle_focus, setting.min_angle_non_focus, setting.angle_landscape_right, setting.angle_landscape_left, setting.angle_portrait_up, setting.angle_portrait_down, setting.min_dur_moved, setting.min_dur_quite);
|
||||
|
||||
bma456w_map_interrupt(BMA4_INTR1_MAP, BMA456W_WRIST_WEAR_WAKEUP_INT, BMA4_ENABLE, &bma);
|
||||
if(bma4_get_int_pin_config(&pin_config, BMA4_INTR1_MAP, &bma) == BMA4_OK)
|
||||
APP_LOG_INFO("BMA456 get pin conf ok");
|
||||
else
|
||||
APP_LOG_INFO("BMA456 get pin conf failed");
|
||||
|
||||
//bma456w_map_interrupt(BMA4_INTR1_MAP, (BMA456W_ANY_MOT_INT | BMA456W_NO_MOT_INT), BMA4_ENABLE, &bma);
|
||||
if(bma456w_map_interrupt(BMA4_INTR1_MAP, BMA456W_WRIST_WEAR_WAKEUP_INT, BMA4_ENABLE, &bma) == BMA4_OK)
|
||||
APP_LOG_INFO("BMA456 map int ok");
|
||||
else
|
||||
APP_LOG_INFO("BMA456 map int failed");
|
||||
|
||||
/*struct bma456w_any_no_mot_config any_no_mot = {.threshold = 10, .duration = 4, .axes_en = BMA456W_EN_ALL_AXIS};
|
||||
bma456w_set_any_mot_config(&any_no_mot, &bma);
|
||||
|
||||
bma456w_set_no_mot_config(&any_no_mot, &bma);*/
|
||||
|
||||
|
||||
pin_config.edge_ctrl = BMA4_EDGE_TRIGGER;
|
||||
pin_config.output_en = BMA4_OUTPUT_ENABLE;
|
||||
pin_config.lvl = BMA4_ACTIVE_LOW;
|
||||
pin_config.od = BMA4_PUSH_PULL;
|
||||
pin_config.input_en = BMA4_INPUT_DISABLE;
|
||||
|
||||
if(bma4_set_int_pin_config(&pin_config, BMA4_INTR1_MAP, &bma) == BMA4_OK)
|
||||
APP_LOG_INFO("BMA456 set pin conf ok");
|
||||
else
|
||||
APP_LOG_INFO("BMA456 set pin conf failed");
|
||||
|
||||
/*tls_gpio_cfg(WM_IO_PB_00, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_PULLHIGH);
|
||||
tls_gpio_isr_register(WM_IO_PB_00, &(touch_screen_isr), NULL);
|
||||
tls_gpio_irq_enable(WM_IO_PB_00, WM_GPIO_IRQ_TRIG_FALLING_EDGE);*/
|
||||
|
||||
for(;;)
|
||||
{
|
||||
@ -278,35 +305,46 @@ void gfx_task(void *param)
|
||||
|
||||
if(compass_screen_is_in_use(&compassScreen) && QMC5883L_is_data_available())
|
||||
{
|
||||
//QMC5883L_MData_t MDataRaw = QMC5883L_get_MFields_raw();
|
||||
//APP_LOG_TRACE("X %d Y %d Z %d", MDataRaw.MFieldX, MDataRaw.MFieldY, MDataRaw.MFieldZ);
|
||||
/*__disable_irq();
|
||||
QMC5883L_MData_t MDataRaw = QMC5883L_get_MFields_raw();
|
||||
APP_LOG_TRACE("X %d Y %d Z %d", MDataRaw.MFieldX, MDataRaw.MFieldY, MDataRaw.MFieldZ);
|
||||
__enable_irq();*/
|
||||
|
||||
QMC5883L_MData_calibrated_t MData = QMC5883L_get_MFields_calibrated();
|
||||
compass_screen_set_azimuth(&compassScreen, angle_with_offset(QMC5883L_get_azimuth(MData), 180));
|
||||
}
|
||||
|
||||
uint8_t rslt = bma456w_read_int_status(&int_status, &bma);
|
||||
/*uint8_t rslt = bma456w_read_int_status(&int_status, &bma);
|
||||
if(rslt != BMA4_OK)
|
||||
APP_LOG_DEBUG("Failed to read int status");
|
||||
|
||||
/* Check if step counter interrupt is triggered */
|
||||
if((BMA4_OK == rslt) && (int_status & BMA456W_ANY_MOT_INT))
|
||||
{
|
||||
APP_LOG_DEBUG("Motion detected");
|
||||
}
|
||||
|
||||
if((BMA4_OK == rslt) && (int_status & BMA456W_WRIST_WEAR_WAKEUP_INT))
|
||||
{
|
||||
APP_LOG_DEBUG("Wrist tilt");
|
||||
}
|
||||
}*/
|
||||
|
||||
if(++aliveCounter % 200 == 0)
|
||||
{
|
||||
float temp = BMP280_get_temperature();
|
||||
BMP280_trigger_measurement();
|
||||
APP_LOG_DEBUG("GFX thread, temp : %0.2f", temp);
|
||||
//APP_LOG_DEBUG("------------ x %d y %d, action : %d", x, y, action);
|
||||
|
||||
aliveCounter = 0;
|
||||
}
|
||||
|
||||
/* Handle inactivity periods : */
|
||||
/*if(lv_disp_get_inactive_time(NULL) > 10000)
|
||||
{
|
||||
// First, we disable the display backlight and we set all the peripherals in their low power mode
|
||||
lcd_set_backlight(&LCDConfig, 0);
|
||||
// Let's sleep
|
||||
tls_pmu_sleep_start();
|
||||
// On wake up, we force the watch face to sync up with the rtc /!\ RTC update delay WTF ?
|
||||
tls_os_time_delay(1);
|
||||
watch_face_force_sync(&watchFace);
|
||||
lv_disp_trig_activity(NULL);
|
||||
lcd_set_backlight(&LCDConfig, 255);
|
||||
}*/
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user