/** * \brief PWM toggling. * * \param ms The interval of PWM toggling (mini seconds) */ void PWM_run(uint16_t ms) { start_EPD_timer(); do { EPD_pwm_high(); __delay_cycles(30); EPD_pwm_low(); __delay_cycles(30); } while (get_current_time_tick() < ms); //wait Delay Time stop_EPD_timer(); }
/** * \brief Initialize the EPD hardware setting */ void EPD_display_hardware_init(void) { EPD_initialize_gpio(); EPD_Vcc_turn_off(); epd_spi_init(); initialize_temperature(); EPD_cs_low(); EPD_pwm_low(); EPD_rst_low(); EPD_discharge_low(); EPD_border_low(); //initialize_EPD_timer(); }
/** * \brief Initialize the temperature sensor */ void initialize_temperature(void) { /** not used at present */ #if 0 struct adc_config adc_cfg = { /* System clock division factor is 16 */ .prescal = ADC_PRESCAL_DIV16, /* The APB clock is used */ .clksel = ADC_CLKSEL_APBCLK, /* Max speed is 150K */ .speed = ADC_SPEED_150K, /* ADC Reference voltage is VCC/2 */ .refsel =ADC_REFSEL_4, /* Enables the Startup time */ .start_up = CONFIG_ADC_STARTUP }; struct adc_seq_config adc_seq_cfg = { /* Select Vref for shift cycle */ .zoomrange = ADC_ZOOMRANGE_0, /* Pad Ground */ .muxneg = ADC_MUXNEG_1, /* Temperature sensor */ .muxpos = EPD_Temperature_Sensor_ADC, /* Enables the internal voltage sources */ .internal =ADC_INTERNAL_2, /* Disables the ADC gain error reduction */ .gcomp = ADC_GCOMP_DIS, /* Disables the HWLA mode */ .hwla = ADC_HWLA_DIS, .gain=ADC_GAIN_1X, /* 12-bits resolution */ .res = ADC_RES_12_BIT, /* Enables the single-ended mode */ .bipolar = ADC_BIPOLAR_SINGLEENDED }; struct adc_ch_config adc_ch_cfg = { .seq_cfg = &adc_seq_cfg, /* Internal Timer Max Counter */ .internal_timer_max_count = 60, /* Window monitor mode is off */ .window_mode = 0, .low_threshold = 0, .high_threshold = 0, }; adc_init(&g_adc_inst, ADCIFE, &adc_cfg); adc_enable(&g_adc_inst); adc_ch_set_config(&g_adc_inst, &adc_ch_cfg); adc_set_callback(&g_adc_inst, ADC_SEQ_SEOC, adcife_read_conv_result, ADCIFE_IRQn, 1); adc_configure_trigger(&g_adc_inst,ADC_TRIG_SW); adc_configure_gain(&g_adc_inst, ADC_GAIN_1X); #endif } /** * \brief Initialize the EPD hardware setting */ void EPD_display_hardware_init (void) { EPD_initialize_gpio(); EPD_Vcc_turn_off(); epd_spi_init(); initialize_temperature(); EPD_cs_low(); EPD_pwm_low(); EPD_rst_low(); EPD_discharge_low(); EPD_border_low(); //initialize_EPD_timer(); }