1 /*
2 * Copyright (c) 2006-2023, RT-Thread Development Team
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Change Logs:
7 * Date Author Notes
8 * 2010-03-30 Kyle First version
9 * 2023-10-25 Raman Gopalan AT32UC3A: Access GPIO using RT's pin abstractions
10 */
11
12 #include <rtthread.h>
13 #include <rtdevice.h>
14 #include "compiler.h"
15 #include "gpio.h"
16
17 /* Mizar32's built-in LED */
18 #define USER_LED_1 AVR32_PIN_PB29
19
20 char thread_led1_stack[1024];
21 struct rt_thread thread_led1;
rt_thread_entry_led1(void * parameter)22 static void rt_thread_entry_led1(void* parameter)
23 {
24 rt_pin_mode(USER_LED_1, PIN_MODE_OUTPUT);
25 while (1)
26 {
27 rt_pin_write(USER_LED_1, 1);
28 rt_thread_delay(RT_TICK_PER_SECOND / 2); /* sleep 0.5 second and switch to other thread */
29
30 rt_pin_write(USER_LED_1, 0);
31 rt_thread_delay(RT_TICK_PER_SECOND / 2);
32 }
33 }
34
rt_application_init()35 int rt_application_init()
36 {
37 /* create led1 thread */
38 rt_thread_init(&thread_led1,
39 "led1",
40 rt_thread_entry_led1,
41 RT_NULL,
42 &thread_led1_stack[0],
43 sizeof(thread_led1_stack), 5, 5);
44 rt_thread_startup(&thread_led1);
45
46 return 0;
47 }
48