mirror of
https://github.com/jam422470459/EPD-nRF52-hema213.git
synced 2025-12-06 16:42:49 +08:00
reset pin on gpio uninit
This commit is contained in:
@@ -53,7 +53,9 @@ void pinMode(uint32_t pin, uint32_t mode)
|
||||
case OUTPUT:
|
||||
nrf_gpio_cfg_output(pin);
|
||||
break;
|
||||
case DEFAULT:
|
||||
default:
|
||||
nrf_gpio_cfg_default(pin);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -209,10 +211,9 @@ void EPD_WriteData(uint8_t *Data, uint8_t Len)
|
||||
|
||||
void EPD_Reset(uint32_t value, uint16_t duration)
|
||||
{
|
||||
uint32_t rvalue = (value == LOW) ? HIGH : LOW;
|
||||
digitalWrite(EPD_RST_PIN, value);
|
||||
delay(10);
|
||||
digitalWrite(EPD_RST_PIN, rvalue);
|
||||
digitalWrite(EPD_RST_PIN, (value == LOW) ? HIGH : LOW);
|
||||
delay(duration);
|
||||
digitalWrite(EPD_RST_PIN, value);
|
||||
delay(duration);
|
||||
@@ -281,13 +282,27 @@ void EPD_GPIO_Init(void)
|
||||
|
||||
void EPD_GPIO_Uninit(void)
|
||||
{
|
||||
EPD_LED_OFF();
|
||||
|
||||
digitalWrite(EPD_DC_PIN, LOW);
|
||||
digitalWrite(EPD_CS_PIN, LOW);
|
||||
digitalWrite(EPD_RST_PIN, LOW);
|
||||
if (EPD_EN_PIN != 0xFF) {
|
||||
digitalWrite(EPD_EN_PIN, LOW);
|
||||
}
|
||||
|
||||
EPD_SPI_Uninit();
|
||||
|
||||
EPD_LED_OFF();
|
||||
// reset pin state
|
||||
pinMode(EPD_MOSI_PIN, DEFAULT);
|
||||
pinMode(EPD_SCLK_PIN, DEFAULT);
|
||||
pinMode(EPD_CS_PIN, DEFAULT);
|
||||
pinMode(EPD_DC_PIN, DEFAULT);
|
||||
pinMode(EPD_RST_PIN, DEFAULT);
|
||||
pinMode(EPD_BUSY_PIN, DEFAULT);
|
||||
pinMode(EPD_BS_PIN, DEFAULT);
|
||||
pinMode(EPD_EN_PIN, DEFAULT);
|
||||
pinMode(EPD_LED_PIN, DEFAULT);
|
||||
}
|
||||
|
||||
// lED
|
||||
@@ -309,6 +324,18 @@ void EPD_LED_Toggle(void)
|
||||
nrf_gpio_pin_toggle(EPD_LED_PIN);
|
||||
}
|
||||
|
||||
void EPD_LED_BLINK(void)
|
||||
{
|
||||
if (EPD_LED_PIN != 0xFF) {
|
||||
pinMode(EPD_LED_PIN, OUTPUT);
|
||||
digitalWrite(EPD_LED_PIN, LOW);
|
||||
delay(100);
|
||||
digitalWrite(EPD_LED_PIN, HIGH);
|
||||
delay(100);
|
||||
pinMode(EPD_LED_PIN, DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
// EPD models
|
||||
extern epd_model_t epd_uc8176_420_bw;
|
||||
extern epd_model_t epd_uc8176_420_bwr;
|
||||
|
||||
@@ -59,6 +59,7 @@ typedef struct
|
||||
#define LOW (0x0)
|
||||
#define HIGH (0x1)
|
||||
|
||||
#define DEFAULT (0xFF)
|
||||
#define INPUT (0x0)
|
||||
#define OUTPUT (0x1)
|
||||
#define INPUT_PULLUP (0x2)
|
||||
@@ -96,6 +97,7 @@ void EPD_WaitBusy(uint32_t value, uint16_t timeout);
|
||||
void EPD_LED_ON(void);
|
||||
void EPD_LED_OFF(void);
|
||||
void EPD_LED_Toggle(void);
|
||||
void EPD_LED_BLINK(void);
|
||||
|
||||
epd_model_t *epd_get(void);
|
||||
epd_model_t *epd_init(epd_model_id_t id);
|
||||
|
||||
@@ -46,11 +46,13 @@ static void epd_gpio_init()
|
||||
EPD_GPIO_Init();
|
||||
}
|
||||
m_driver_refs++;
|
||||
NRF_LOG_DEBUG("[EPD]: m_driver_refs=%d\n", m_driver_refs);
|
||||
}
|
||||
|
||||
static void epd_gpio_uninit()
|
||||
{
|
||||
m_driver_refs--;
|
||||
NRF_LOG_DEBUG("[EPD]: m_driver_refs=%d\n", m_driver_refs);
|
||||
if (m_driver_refs == 0) {
|
||||
NRF_LOG_DEBUG("[EPD]: driver exit\n");
|
||||
EPD_GPIO_Uninit();
|
||||
@@ -318,12 +320,9 @@ uint32_t ble_epd_init(ble_epd_t * p_epd, epd_callback_t cmd_cb)
|
||||
|
||||
// load config
|
||||
EPD_GPIO_Load(&p_epd->config);
|
||||
epd_gpio_init();
|
||||
|
||||
// blink LED on start
|
||||
EPD_LED_ON();
|
||||
delay(100);
|
||||
EPD_LED_OFF();
|
||||
EPD_LED_BLINK();
|
||||
|
||||
// Add the service.
|
||||
return epd_service_init(p_epd);
|
||||
|
||||
Reference in New Issue
Block a user