提交 8a06b07f 编写于 作者: G geniusgogo 提交者: GitHub

Update application.c

code style clean
上级 189c999f
...@@ -10,20 +10,20 @@ ...@@ -10,20 +10,20 @@
void LED_Init(void) void LED_Init(void)
{ {
struct port_config config_port_pin; struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin); port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_INPUT; config_port_pin.direction = PORT_PIN_DIR_INPUT;
config_port_pin.input_pull = PORT_PIN_PULL_UP; config_port_pin.input_pull = PORT_PIN_PULL_UP;
port_pin_set_config(PIN_PA15, &config_port_pin); port_pin_set_config(PIN_PA15, &config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT; config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(PIN_PB30, &config_port_pin); port_pin_set_config(PIN_PB30, &config_port_pin);
} }
void LED_ON(void) void LED_ON(void)
{ {
port_pin_set_output_level(PIN_PB30, false); port_pin_set_output_level(PIN_PB30, false);
} }
void LED_OFF(void) void LED_OFF(void)
...@@ -36,106 +36,109 @@ void extint_detection_callback(void); ...@@ -36,106 +36,109 @@ void extint_detection_callback(void);
void configure_extint_channel(void) void configure_extint_channel(void)
{ {
//! [setup_1] //! [setup_1]
struct extint_chan_conf config_extint_chan; struct extint_chan_conf config_extint_chan;
//! [setup_1] //! [setup_1]
//! [setup_2] //! [setup_2]
extint_chan_get_config_defaults(&config_extint_chan); extint_chan_get_config_defaults(&config_extint_chan);
//! [setup_2] //! [setup_2]
//! [setup_3] //! [setup_3]
config_extint_chan.gpio_pin = PIN_PA15A_EIC_EXTINT15; config_extint_chan.gpio_pin = PIN_PA15A_EIC_EXTINT15;
config_extint_chan.gpio_pin_mux = MUX_PA15A_EIC_EXTINT15; config_extint_chan.gpio_pin_mux = MUX_PA15A_EIC_EXTINT15;
config_extint_chan.gpio_pin_pull = EXTINT_PULL_UP; config_extint_chan.gpio_pin_pull = EXTINT_PULL_UP;
config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH; config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;
//! [setup_3] //! [setup_3]
//! [setup_4] //! [setup_4]
extint_chan_set_config(15, &config_extint_chan); extint_chan_set_config(15, &config_extint_chan);
//! [setup_4] //! [setup_4]
} }
void configure_extint_callbacks(void) void configure_extint_callbacks(void)
{ {
//! [setup_5] //! [setup_5]
extint_register_callback(extint_detection_callback, 15, EXTINT_CALLBACK_TYPE_DETECT); extint_register_callback(extint_detection_callback, 15, EXTINT_CALLBACK_TYPE_DETECT);
//! [setup_5] //! [setup_5]
//! [setup_6] //! [setup_6]
extint_chan_enable_callback(15, EXTINT_CALLBACK_TYPE_DETECT); extint_chan_enable_callback(15, EXTINT_CALLBACK_TYPE_DETECT);
//! [setup_6] //! [setup_6]
} }
//! [setup_7] //! [setup_7]
void extint_detection_callback(void) void extint_detection_callback(void)
{ {
bool pin_state = port_pin_get_input_level(PIN_PA15); bool pin_state = port_pin_get_input_level(PIN_PA15);
port_pin_set_output_level(PIN_PB30, pin_state); port_pin_set_output_level(PIN_PB30, pin_state);
} }
static struct rt_semaphore _rx_sem; static struct rt_semaphore _rx_sem;
static rt_err_t _rx_ind(rt_device_t dev, rt_size_t size) static rt_err_t _rx_ind(rt_device_t dev, rt_size_t size)
{ {
return rt_sem_release(&_rx_sem); return rt_sem_release(&_rx_sem);
} }
void rt_init_thread_entry(void* parameter) void rt_init_thread_entry(void* parameter)
{ {
rt_thread_t thread; rt_thread_t thread;
rt_device_t dev; rt_device_t dev;
rt_kprintf("SYSTEM running at %uhz\n", SystemCoreClock); rt_kprintf("SYSTEM running at %uhz\n", SystemCoreClock);
LED_Init();
configure_extint_channel();
configure_extint_callbacks();
sleep_timer_init(); #if defined(TEST_UART_RX)
sleep_timer_init();
// sleep_timer_start(1500); // sleep_timer_start(1500);
LED_Init(); while (1)
configure_extint_channel(); {
configure_extint_callbacks(); rt_kprintf("init thread running tick:%u\n", rt_tick_get());
rt_thread_delay(2*RT_TICK_PER_SECOND);
while (1) }
{
rt_kprintf("init thread running tick:%u\n", rt_tick_get()); #else
rt_thread_delay(2*RT_TICK_PER_SECOND);
} dev = rt_device_find("uart3");
if (dev != RT_NULL)
#if 0 {
dev = rt_device_find("uart3"); rt_sem_init(&_rx_sem, "rxsem", 0, RT_IPC_FLAG_FIFO);
if (dev != RT_NULL) rt_device_set_rx_indicate(dev, _rx_ind);
{ rt_device_open(dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX);
rt_sem_init(&_rx_sem, "rxsem", 0, RT_IPC_FLAG_FIFO); }
rt_device_set_rx_indicate(dev, _rx_ind);
rt_device_open(dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX);
}
while (1) while (1)
{ {
rt_size_t r_size; rt_size_t r_size;
rt_uint8_t r_buf[1]; rt_uint8_t r_buf[1];
// rt_kprintf("SAMD2xJ18A hello thread\n");
// rt_thread_delay(RT_TICK_PER_SECOND); rt_sem_take(&_rx_sem, RT_WAITING_FOREVER);
rt_sem_take(&_rx_sem, RT_WAITING_FOREVER); while ((r_size = rt_device_read(dev, 0, r_buf, 1)) > 0)
while ((r_size = rt_device_read(dev, 0, r_buf, 1)) > 0) {
{ rt_device_write(dev, 0, r_buf, r_size);
rt_device_write(dev, 0, r_buf, r_size); if (r_buf[0] == '\r')
if (r_buf[0] == '\r') {
{ r_buf[0] = '\n';
r_buf[0] = '\n'; rt_device_write(dev, 0, r_buf, r_size);
rt_device_write(dev, 0, r_buf, r_size); }
} }
} }
}
#endif #endif
} }
int rt_application_init(void) int rt_application_init(void)
{ {
rt_thread_t tid; rt_thread_t tid;
tid = rt_thread_create("init", rt_init_thread_entry, RT_NULL, tid = rt_thread_create("init", rt_init_thread_entry, RT_NULL,
512, RT_THREAD_PRIORITY_MAX / 3, 20); 512, RT_THREAD_PRIORITY_MAX / 3, 20);
if (tid != RT_NULL) if (tid != RT_NULL)
rt_thread_startup(tid); rt_thread_startup(tid);
return 0; return 0;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册