parent
f9533ed85a
commit
020afdcf33
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
// For event signalling
|
// For event signalling
|
||||||
static task_handle_t sig = 0;
|
static task_handle_t sig = 0;
|
||||||
|
static uint8 *sig_flag;
|
||||||
|
static uint8 isr_flag = 0;
|
||||||
|
|
||||||
// UartDev is defined and initialized in rom code.
|
// UartDev is defined and initialized in rom code.
|
||||||
extern UartDevice UartDev;
|
extern UartDevice UartDev;
|
||||||
|
@ -277,8 +279,12 @@ uart0_rx_intr_handler(void *para)
|
||||||
got_input = true;
|
got_input = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (got_input && sig)
|
if (got_input && sig) {
|
||||||
task_post_low (sig, false);
|
if (isr_flag == *sig_flag) {
|
||||||
|
isr_flag ^= 0x01;
|
||||||
|
task_post_low (sig, 0x8000 | isr_flag << 14 | false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -316,14 +322,15 @@ uart_stop_autobaud()
|
||||||
* Description : user interface for init uart
|
* Description : user interface for init uart
|
||||||
* Parameters : UartBautRate uart0_br - uart0 bautrate
|
* Parameters : UartBautRate uart0_br - uart0 bautrate
|
||||||
* UartBautRate uart1_br - uart1 bautrate
|
* UartBautRate uart1_br - uart1 bautrate
|
||||||
* uint8 task_prio - task priority to signal on input
|
|
||||||
* os_signal_t sig_input - signal to post
|
* os_signal_t sig_input - signal to post
|
||||||
|
* uint8 *flag_input - flag of consumer task
|
||||||
* Returns : NONE
|
* Returns : NONE
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
void ICACHE_FLASH_ATTR
|
void ICACHE_FLASH_ATTR
|
||||||
uart_init(UartBautRate uart0_br, UartBautRate uart1_br, os_signal_t sig_input)
|
uart_init(UartBautRate uart0_br, UartBautRate uart1_br, os_signal_t sig_input, uint8 *flag_input)
|
||||||
{
|
{
|
||||||
sig = sig_input;
|
sig = sig_input;
|
||||||
|
sig_flag = flag_input;
|
||||||
|
|
||||||
// rom use 74880 baut_rate, here reinitialize
|
// rom use 74880 baut_rate, here reinitialize
|
||||||
UartDev.baut_rate = uart0_br;
|
UartDev.baut_rate = uart0_br;
|
||||||
|
|
|
@ -101,7 +101,7 @@ typedef struct {
|
||||||
int buff_uart_no; //indicate which uart use tx/rx buffer
|
int buff_uart_no; //indicate which uart use tx/rx buffer
|
||||||
} UartDevice;
|
} UartDevice;
|
||||||
|
|
||||||
void uart_init(UartBautRate uart0_br, UartBautRate uart1_br, os_signal_t sig_input);
|
void uart_init(UartBautRate uart0_br, UartBautRate uart1_br, os_signal_t sig_input, uint8 *flag_input);
|
||||||
void uart0_alt(uint8 on);
|
void uart0_alt(uint8 on);
|
||||||
void uart0_sendStr(const char *str);
|
void uart0_sendStr(const char *str);
|
||||||
void uart0_putc(const char c);
|
void uart0_putc(const char c);
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static task_handle_t input_sig;
|
static task_handle_t input_sig;
|
||||||
|
static uint8 input_sig_flag = 0;
|
||||||
|
|
||||||
/* Contents of esp_init_data_default.bin */
|
/* Contents of esp_init_data_default.bin */
|
||||||
extern const uint32_t init_data[];
|
extern const uint32_t init_data[];
|
||||||
|
@ -100,7 +101,10 @@ static void start_lua(task_param_t param, uint8 priority) {
|
||||||
|
|
||||||
static void handle_input(task_param_t flag, uint8 priority) {
|
static void handle_input(task_param_t flag, uint8 priority) {
|
||||||
(void)priority;
|
(void)priority;
|
||||||
lua_handle_input (flag);
|
if (flag & 0x8000) {
|
||||||
|
input_sig_flag = flag & 0x4000 ? 1 : 0;
|
||||||
|
}
|
||||||
|
lua_handle_input (flag & 0x01);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool user_process_input(bool force) {
|
bool user_process_input(bool force) {
|
||||||
|
@ -231,7 +235,7 @@ void user_init(void)
|
||||||
UartBautRate br = BIT_RATE_DEFAULT;
|
UartBautRate br = BIT_RATE_DEFAULT;
|
||||||
|
|
||||||
input_sig = task_get_id(handle_input);
|
input_sig = task_get_id(handle_input);
|
||||||
uart_init (br, br, input_sig);
|
uart_init (br, br, input_sig, &input_sig_flag);
|
||||||
|
|
||||||
#ifndef NODE_DEBUG
|
#ifndef NODE_DEBUG
|
||||||
system_set_os_print(0);
|
system_set_os_print(0);
|
||||||
|
|
Loading…
Reference in New Issue