123 lines
3.1 KiB
C
Raw Normal View History

2024-07-22 20:00:29 +08:00
/*
* Copyright (c) 2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-07-06 Supperthomas first version
* 2023-12-03 Meco Man support nano version
*/
2024-07-24 10:06:29 +08:00
#include <board.h>
2024-07-23 18:05:33 +08:00
#include <rtthread.h>
2024-07-24 10:06:29 +08:00
#include <drv_gpio.h>
#ifndef RT_USING_NANO
#include <rtdevice.h>
#endif /* RT_USING_NANO */
2024-07-23 18:05:33 +08:00
2024-07-24 10:06:29 +08:00
#define GPIO_LED_B GET_PIN(F, 11)
#define GPIO_LED_R GET_PIN(F, 12)
int main(void)
2024-07-23 18:05:33 +08:00
{
2024-07-24 10:06:29 +08:00
rt_pin_mode(GPIO_LED_R, PIN_MODE_OUTPUT);
while (1)
2024-07-23 18:05:33 +08:00
{
2024-07-24 10:06:29 +08:00
rt_pin_write(GPIO_LED_R, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(GPIO_LED_R, PIN_LOW);
2024-07-23 18:05:33 +08:00
rt_thread_mdelay(500);
}
}
2024-07-24 10:06:29 +08:00
// #include <rtthread.h>
// #include "hello.h"
// int main(void)
// {
// while(1)
// {
// Print_Hello_World();
// rt_thread_mdelay(500);
// }
// return 0;
// }
2024-07-23 17:15:36 +08:00
/*
* /线
*
* 线线线
* 线线
*/
// #include <rtthread.h>
// #define THREAD_PRIORITY 25
// #define THREAD_STACK_SIZE 512
// #define THREAD_TIMESLICE 5
// static rt_thread_t tid1 = RT_NULL;
// /* 线程1的入口函数 */
// static void thread1_entry(void *parameter)
2024-07-22 20:00:29 +08:00
// {
2024-07-23 17:15:36 +08:00
// rt_uint32_t count = 0;
2024-07-22 20:00:29 +08:00
// while (1)
// {
2024-07-23 17:15:36 +08:00
// /* 线程1采用低优先级运行一直打印计数值 */
// rt_kprintf("thread1 count: %d\n", count++);
// rt_thread_mdelay(500); // 延时500毫秒
2024-07-22 20:00:29 +08:00
// }
// }
2024-07-23 17:15:36 +08:00
// static char thread2_stack[1024];
// static struct rt_thread thread2;
2024-07-22 20:00:29 +08:00
2024-07-23 17:15:36 +08:00
// /* 线程2入口 */
// static void thread2_entry(void *param)
// {
// rt_uint32_t count = 0;
2024-07-22 20:00:29 +08:00
2024-07-23 17:15:36 +08:00
// /* 线程2拥有较高的优先级以抢占线程1而获得执行 */
// for (count = 0; count < 10 ; count++)
// {
// /* 线程2打印计数值 */
// rt_kprintf("thread2 count: %d\n", count);
// }
// rt_kprintf("thread2 exit\n");
// /* 线程2运行结束后也将自动被系统脱离 */
// }
// /* 线程示例 */
// int thread_sample(void)
// {
// /* 创建线程1名称是thread1入口是thread1_entry */
// tid1 = rt_thread_create("thread1",
// thread1_entry, RT_NULL,
// THREAD_STACK_SIZE,
// THREAD_PRIORITY, THREAD_TIMESLICE);
// /* 如果获得线程控制块,启动这个线程 */
// if (tid1 != RT_NULL)
// rt_thread_startup(tid1);
// /* 初始化线程2名称是thread2入口是thread2_entry */
// rt_thread_init(&thread2,
// "thread2",
// thread2_entry,
// RT_NULL,
// &thread2_stack[0],
// sizeof(thread2_stack),
// THREAD_PRIORITY - 1, THREAD_TIMESLICE);
// /* 启动线程2 */
// rt_thread_startup(&thread2);
// return 0;
// }
// /* 导出到 msh 命令列表中 */
// MSH_CMD_EXPORT(thread_sample, thread sample);