历史上的今天
今天是:2024年12月06日(星期五)
2019年12月06日 | AVR开发 Arduino方法(七) 嵌入式操作系统FreeRTOS
2019-12-06 来源:eefocus
FreeRTOS可以提供任务管理,队列管理,中断管理,资源管理和内存管理等功能,由于占用资源少,它可以运行在Arduino UNO R3开发板上。
你可以在https://github.com/greiman/FreeRTOS-Arduino上下载到它,将下载到的FreeRTOS-Arduino-master.zip解压,并将/FreeRTOS-Arduino-master/libraries文件夹下的内容全部复制到Arduino IDE安装目录下的libraries文件夹里就可以使用了。下面是它提供的frBlink示例:
1 // frBlink.ino
2 #include 3 4 const uint8_t LED_PIN = 13; 5 SemaphoreHandle_t sem; 6 7 static void Thread1(void* arg) { 8 while (1) { 9 xSemaphoreTake(sem, portMAX_DELAY); 10 digitalWrite(LED_PIN, LOW); 11 } 12 } 13 14 static void Thread2(void* arg) { 15 pinMode(LED_PIN, OUTPUT); 16 17 while (1) { 18 digitalWrite(LED_PIN, HIGH); 19 vTaskDelay((200L * configTICK_RATE_HZ) / 1000L); 20 xSemaphoreGive(sem); 21 vTaskDelay((200L * configTICK_RATE_HZ) / 1000L); 22 } 23 } 24 25 void setup() { 26 portBASE_TYPE s1, s2; 27 28 Serial.begin(9600); 29 30 sem = xSemaphoreCreateCounting(1, 0); 31 s1 = xTaskCreate(Thread1, NULL, configMINIMAL_STACK_SIZE, NULL, 2, NULL); 32 s2 = xTaskCreate(Thread2, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL); 33 if (sem== NULL || s1 != pdPASS || s2 != pdPASS ) { 34 Serial.println(F("Creation problem")); 35 while(1); 36 } 37 38 vTaskStartScheduler(); 39 Serial.println(F("Insufficient RAM")); 40 while(1); 41 } 42 43 void loop() { 44 } 这个示例效果与Blink示例相同,它演示了FreeRTOS的任务创建,信号量以及任务睡眠等功能。 除了6个基本示例外,FreeRTOSBook文件夹下提供了额外的16个示例;由于篇幅关系,请大家参阅这22个示例或其他关于FreeRTOS的书籍。
史海拾趣
|
我现在有这么个需求:在wince下,写一个程序,去检测U盘是否插上了。 我发现这种检测U盘是否已经插上了比较困难,因为这不是个实时检测。 当点击我的程序之后,如果用户没有插U盘,就提醒用户插U盘。所以,会去检测U盘是否插上了。 考虑这种检 ...… 查看全部问答> |
|
窗体WM_PAINT中显示一图片,后来在BUTTON中改了图片路径,但是怎么通知窗体重画呢? 我的窗体WM_PAINT中显示了一图片,后来在某个BUTTON单击中改了图片路径,但是怎么通知窗体重画新的图片呢? WM_PAINT中用SHLoadDIBitmap(L\"路径\\\\windows.bmp\")和Bitblt显示的一个图片 我在一个BUTTON里改变了图片的路径变量, 但是这时候窗体没 ...… 查看全部问答> |
|
PC下的OpenGL跟WINCE下的OpenGL是不是区别很大?整个OpenGL框架是怎么样的?谁封装谁? PC下的OpenGL跟WINCE下的OpenGL是不是区别很大?整个OpenGL框架是怎么样的?谁封装谁?… 查看全部问答> |
|
B 为什么限制在当前指令的正负32MB范围内 还有 就是 ARM 指令为字对齐,最低2位地址固定为0 是什么意思? 我看了一下B 的指令编码格式 但是不懂 我总以为范围应是 16MB  ...… 查看全部问答> |
|
大家好!我是一个刚到的新手,是学电子信息的,我喜欢的方向是计算机软件,准备的考研方向也是计算机软件,可是现在大三了,专业课的作业是叫我们实做!基于GSM 报警器设计(无人机房温度测控),现在老师的要求是要求我们设计一块试验用的STM ...… 查看全部问答> |
|
哪位大侠有ALTERA这个FPGA的 datasheet以及引脚图、原理图库 ---EP2C8Q208C8N,cycloneII 系列的,关于他的资料多多益善啊,可以通过我qq给我,感激不尽啊,QQ是1543311909 [ 本帖最后由 君来怅寥廓 于 2011-8-20 14:15 编辑 ]… 查看全部问答> |
|
各位大大,现在我有2个一样的主板,网卡芯片是82574L,现在要实现百兆连接,我只接了四根线, 然后2个主板互相PING确不通,可是每个对别的PC进行PING就没问题,想问问个位,怎么解决, 是驱动问题吗?还是哪里需要做改动。 &nbs ...… 查看全部问答> |




