Browse Source

fix ssd1306bug

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
eb1dbce379
  1. 55
      app/main.c
  2. 7
      app/src/basic/ssd1306/driver_ssd1306.c
  3. 3
      app/src/basic/ssd1306/driver_ssd1306_basic.c
  4. 15
      app/src/basic/ssd1306/driver_ssd1306_basic.h
  5. 21
      app/src/three_lead/ads_cfg.h

55
app/main.c

@ -97,7 +97,7 @@ void main() {
/*******************************************************************************
* +LED测试 *
*******************************************************************************/
#if 0
#if 1
static void test_tx_timer_cb(void* p_context) {
static uint32_t data;
data++;
@ -110,7 +110,7 @@ static void test_tx_timer_cb(void* p_context) {
extern uint32_t g_nrf_log_tx_pin;
APP_TIMER_DEF(m_test_tx_timer);
void main() {
int main() {
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20);
znordic_init();
@ -120,10 +120,19 @@ void main() {
SingleLeadECG_screen_init();
ssd1306_basic_init(SSD1306_INTERFACE_SPI, SSD1306_ADDR_SA0_0);
ssd1306_basic_display_on();
ssd1306_basic_string(0, 0, "123456789123456789123", 21, 0, SSD1306_FONT_12);
ssd1306_basic_string(0, 16, "123456789123456789123", 21, 0, SSD1306_FONT_12);
ssd1306_basic_string(0, 32, "123456789123456789123", 21, 0, SSD1306_FONT_12);
ssd1306_basic_string(0, 48, "123456789123456789123", 21, 0, SSD1306_FONT_12);
// ssd1306_basic_string(0, 0, "123456789123456789123", 21, 0, SSD1306_FONT_12);
// ssd1306_basic_string(0, 16, "123456789123456789123", 21, 0, SSD1306_FONT_12);
// ssd1306_basic_string(0, 32, "123456789123456789123", 21, 0, SSD1306_FONT_12);
// ssd1306_basic_string(0, 48, "123456789123456789123", 21, 0, SSD1306_FONT_12);
for (size_t i = 0; i < 127; i++) {
for (size_t j = 0; j < 64; j++)
{
ssd1306_basic_write_point(i, j, 1);
}
}
// ssd1306_gram_update(ssd1306_handler());
SingleLeadECG_led_init();
@ -372,6 +381,7 @@ static void test_tx_timer_cb(void* p_context) {
ThreeLeadECG_ads1293_sample_all(&sample0, &sample1, &sample2, &sample10, &sample11, &sample12);
zdatachanel_send_log("%d,%d,%d,%d,%d,%d\n", sample0, sample1, sample2, sample10, sample11, sample12);
// zdatachanel_send_log("%d,%d\n", sample0, sample1);
// zdatachanel_send_log("%d,%d,%d\n", data, data, data);
// zdatachanel_send_log("%d %d %s\n", ThreeLeadECG_ready_pin_state_get(), ThreeLeadECG_LineInputDet_get_state(), dumplodstate(val));
@ -389,38 +399,7 @@ static const char* hex2str(const uint8_t* data, int32_t len) {
return rx;
}
// void cmd_remove_note(char* input, int inputlen) {
// bool detect_note = false;
// for (int i = 0; i < inputlen; i++) {
// if (!detect_note && input[i] == '#') {
// detect_note = true;
// }
// if (detect_note) {
// input[i] = 0;
// }
// }
// }
// void cmd_prase_cmd(char* input, int inputlen, int32_t* argc, char* argv[]) {
// for (int i = 0; input[i] == 0 || i < inputlen; i++) {
// if (input[i] == ' ' || input[i] == '\r' || input[i] == '\n') {
// input[i] = 0;
// }
// }
// int j = 0;
// for (int i = 0; input[i] == 0 || i < inputlen; i++) {
// if (input[i] != 0 && j == 0) {
// argv[*argc] = &input[i];
// j = 1;
// *argc = *argc + 1;
// continue;
// }
// if (input[i] == 0 && j == 1) {
// j = 0;
// continue;
// }
// }
// }
char cmdcache[256] = {0};
static void zdatachannel_data_handler(zdatachannel_evt_t* p_evt) {
/**

7
app/src/basic/ssd1306/driver_ssd1306.c

@ -426,6 +426,7 @@ uint8_t ssd1306_gram_update(ssd1306_handle_t *handle)
}
for (n = 0; n < 128; n++) /* write 128 */
{
// handle->delay_ms(100);
if (a_ssd1306_write_byte(handle, handle->gram[n][i], SSD1306_DATA) != 0) /* write data */
{
handle->debug_print("ssd1306: write byte failed.\n"); /* write byte failed */
@ -484,6 +485,7 @@ uint8_t ssd1306_write_point(ssd1306_handle_t *handle, uint8_t x, uint8_t y, uint
{
handle->gram[x][pos] &= ~temp; /* set 0 */
}
#if 1
if (a_ssd1306_write_byte(handle, SSD1306_CMD_PAGE_ADDR + pos, SSD1306_CMD) != 0) /* write page addr */
{
handle->debug_print("ssd1306: write byte failed.\n"); /* write byte failed */
@ -496,10 +498,9 @@ uint8_t ssd1306_write_point(ssd1306_handle_t *handle, uint8_t x, uint8_t y, uint
return 1; /* return error */
}
if (a_ssd1306_write_byte(handle, SSD1306_CMD_HIGHER_COLUMN_START_ADDRESS|((x>4)&0x0F), SSD1306_CMD) != 0) /* write higher column */
if (a_ssd1306_write_byte(handle, SSD1306_CMD_HIGHER_COLUMN_START_ADDRESS|((x>>4)&0x0F), SSD1306_CMD) != 0) /* write higher column */
{
handle->debug_print("ssd1306: write byte failed.\n"); /* write byte failed */
return 1; /* return error */
}
if (a_ssd1306_write_byte(handle, handle->gram[x][pos], SSD1306_DATA) != 0) /* write data */
@ -512,6 +513,8 @@ uint8_t ssd1306_write_point(ssd1306_handle_t *handle, uint8_t x, uint8_t y, uint
{
return 0; /* success return 0 */
}
#endif
return 0;
}
/**

3
app/src/basic/ssd1306/driver_ssd1306_basic.c

@ -448,6 +448,9 @@ uint8_t ssd1306_basic_write_point(uint8_t x, uint8_t y, uint8_t data)
return 0;
}
ssd1306_handle_t* ssd1306_handler(){
return &gs_handle;
}
/**
* @brief basic example read a point

15
app/src/basic/ssd1306/driver_ssd1306_basic.h

@ -64,9 +64,12 @@ extern "C"{
#define SSD1306_BASIC_DEFAULT_DISPLAY_OFFSET 0x00 /**< set display offset */
#define SSD1306_BASIC_DEFAULT_MULTIPLEX_RATIO 0x3F /**< set ratio */
#define SSD1306_BASIC_DEFAULT_DISPLAY_MODE SSD1306_DISPLAY_MODE_NORMAL /**< set normal mode */
#define SSD1306_BASIC_DEFAULT_SCAN_DIRECTION SSD1306_SCAN_DIRECTION_COMN_1_START /**< set scan 1 */
#define SSD1306_BASIC_DEFAULT_SEGMENT SSD1306_SEGMENT_COLUMN_ADDRESS_127 /**< set column 127 */
#define SSD1306_BASIC_DEFAULT_CONTRAST 0xCF /**< set contrast CF */
#define SSD1306_BASIC_DEFAULT_SCAN_DIRECTION SSD1306_SCAN_DIRECTION_COMN_1_START /**< 字的方向不对修改这里 */
// #define SSD1306_BASIC_DEFAULT_SCAN_DIRECTION SSD1306_SCAN_DIRECTION_COM0_START /**< 字的方向不对修改这里 */
#define SSD1306_BASIC_DEFAULT_SEGMENT SSD1306_SEGMENT_COLUMN_ADDRESS_0 /**< 字的方向不对修改这里 */
// #define SSD1306_BASIC_DEFAULT_SEGMENT SSD1306_SEGMENT_COLUMN_ADDRESS_127 /**< 字的方向不对修改这里 */
// #define SSD1306_BASIC_DEFAULT_CONTRAST 0xCF /**< set contrast CF */
#define SSD1306_BASIC_DEFAULT_CONTRAST 0x05 /**< set contrast CF */
#define SSD1306_BASIC_DEFAULT_ZOOM_IN SSD1306_ZOOM_IN_DISABLE /**< disable zoom in */
#define SSD1306_BASIC_DEFAULT_FADE_BLINKING_MODE SSD1306_FADE_BLINKING_MODE_DISABLE /**< disable fade */
#define SSD1306_BASIC_DEFAULT_FADE_FRAMES 0x00 /**< set frame 0 */
@ -137,6 +140,8 @@ uint8_t ssd1306_basic_clear(void);
*/
uint8_t ssd1306_basic_write_point(uint8_t x, uint8_t y, uint8_t data);
/**
* @brief basic example read a point
* @param[in] x is the coordinate x
@ -191,6 +196,10 @@ uint8_t ssd1306_basic_rect(uint8_t left, uint8_t top, uint8_t right, uint8_t bot
* @note none
*/
uint8_t ssd1306_basic_picture(uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img);
ssd1306_handle_t* ssd1306_handler();
uint8_t ssd1306_basic_line(uint8_t x, uint8_t y, uint8_t data);
/**
* @}

21
app/src/three_lead/ads_cfg.h

@ -9,23 +9,23 @@ typedef struct {
static adscfg_t ads0cfg[] = {
{0x00, 0x00}, //
{0x01, 0x0a}, //
{0x02, 0x1c}, //
{0x02, 0x1a}, //
{0x03, 0x00}, //
{0x04, 0x00}, //
{0x05, 0x00}, //
{0x06, 0x02}, //
{0x06, 0x04}, //
{0x07, 0x0f}, //
{0x08, 0x13}, //
{0x09, 0x01}, //
{0x0a, 0x0f}, //
{0x08, 0xff}, //
{0x09, 0x00}, //
{0x0a, 0x07}, //
{0x0b, 0x00}, //
{0x0c, 0x04}, //
{0x0d, 0x01}, //
{0x0e, 0x02}, //
{0x0f, 0x03}, //
{0x0d, 0x00}, //
{0x0e, 0x00}, //
{0x0f, 0x00}, //
{0x10, 0x00}, //
{0x11, 0x00}, //
{0x12, 0x05}, //
{0x12, 0x04}, //
{0x13, 0x00}, //
{0x14, 0x00}, //
{0x15, 0x00}, //
@ -44,7 +44,7 @@ static adscfg_t ads0cfg[] = {
{0x25, 0x00}, //
{0x26, 0x00}, //
{0x27, 0x08}, //
{0x28, 0x08}, //
{0x28, 0x00}, //
{0x29, 0x00}, //
{0x2a, 0x00}, //
{0x2b, 0x00}, //
@ -72,7 +72,6 @@ static adscfg_t ads0cfg[] = {
{0x50, 0x00}, //
{0x60, 0x00}, //
{0x62, 0x00}, //
};
static adscfg_t ads1cfg[] = {

Loading…
Cancel
Save