OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4651|回复: 4

点灯成功,发帖自己庆祝一下,并感谢原子团队

[复制链接]

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-6-12 16:33:22 | 显示全部楼层 |阅读模式
经过几天的学习,主要是看原子团队的freeRTOS教程,感觉对freeRTOS有了初步了解,打算并尝试着移植到自己的工程中去。
参考左工的例程,创建了工程,并在之前的产品上实现了按键操作LED灯亮灭,初步点灯成功。
感谢原子团队!感谢左工!感谢freeRTOS团队!


工程目录

工程目录


[mw_shl_code=c,true]#include "stm32f10x.h"
#include "freeRTOS.h"
#include "task.h"
#include "led_task.h"
#include "key_task.h"

int main(void)
{

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

  /* Add your application code here
     */

        led_task_create();
        key_task_create();
       
        vTaskStartScheduler();
  /* Infinite loop */
        while (1)
        {
        }
}[/mw_shl_code]
[mw_shl_code=c,true]
#include  "key_task.h"
#include  "key.h"
#include  "led_task.h"


//KEY任务优先级 1
#define KEY_TASK_PRIO                8
//任务堆栈大小
#define KEY_STK_SIZE                 100
//任务句柄
TaskHandle_t KEYTask_Handler;
//声明
void key_task(void *pvParameters);



void key_task_create(void)
{

        taskENTER_CRITICAL();
       
        key_io_init();
        key_buf_init();
       
        xTaskCreate((TaskFunction_t )key_task,                             //任务函数名
                (const char*    )"key_task",                           //任务名
                (uint16_t       )KEY_STK_SIZE,                         //堆栈大小
                (void*          )NULL,                                    //参数
                (UBaseType_t    )KEY_TASK_PRIO,                //任务优先级
                (TaskHandle_t*  )&KEYTask_Handler);     //任务句柄
        taskEXIT_CRITICAL();
}

void key_task(void *pvParameters)
{
        uint8_t key_data;
       
    while(1)
    {
                key_scan();
               
                if (KeyData)
                {
                        key_data = KeyData<<1;
                       
                        xQueueSend(Led_Queue,&key_data,10);
                        key_data = 0;
                        KeyData = 0;
                }
               
                vTaskDelay(1);
    }
}


[/mw_shl_code]

[mw_shl_code=applescript,true]
#include "led.h"
#include "led_task.h"


//LED任务优先级 1
#define LED_TASK_PRIO                2
//任务堆栈大小
#define LED_STK_SIZE                 50
//任务句柄
TaskHandle_t LEDTask_Handler;
//声明
void led_task(void *pvParameters);


#define LED_QUEUE_NUM    4
QueueHandle_t Led_Queue;

void led_task_create(void)
{

        taskENTER_CRITICAL();
       
        led_io_init();
       
        Led_Queue=xQueueCreate(LED_QUEUE_NUM,sizeof(uint8_t));

        xTaskCreate((TaskFunction_t )led_task,                             //任务函数名
                (const char*    )"led_task",                           //任务名
                (uint16_t       )LED_STK_SIZE,                         //堆栈大小
                (void*          )NULL,                                    //参数
                (UBaseType_t    )LED_TASK_PRIO,                //任务优先级
                (TaskHandle_t*  )&LEDTask_Handler);     //任务句柄
        taskEXIT_CRITICAL();
}

void led_task(void *pvParameters)
{
        uint8_t ledOutData=0;
        uint8_t ledFlashData=0;
        uint8_t ledQueueRece;
       
        // taskENTER_CRITICAL();
        // led_io_init();
        // taskEXIT_CRITICAL();
       
    while(1)
    {
                ledFlashData ^= 0x01;
               
                if (xQueueReceive(Led_Queue,&ledQueueRece,0))
                {
               
                        ledOutData = (ledQueueRece&0xfe)|(ledFlashData&0x01);
                       
                }
                else
                {
                        ledOutData = (ledOutData&0xfe)|(ledFlashData&0x01);
                }
               
                led_switch(ledOutData);
                vTaskDelay(20);
    }
}

[/mw_shl_code]


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
 楼主| 发表于 2018-6-12 16:37:19 | 显示全部楼层
本帖最后由 kvdong 于 2018-6-12 16:39 编辑

drivers目录下是原来产品的文件,系统直接引用了。不过按键里面用到了全局变量,回头要处理一下。
万里长征的第一步终于走出来了,还是值得高兴一下下的PS:貌似主贴里没有感谢意法团队,在这补上吧,虽然使用意法的产品是付费了的。
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-6-12 18:31:44 | 显示全部楼层
客气了,恭喜用起来了
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
 楼主| 发表于 2018-6-12 20:08:59 | 显示全部楼层
zuozhongkai 发表于 2018-6-12 18:31
客气了,恭喜用起来了

只是初步了解了一些,路还很长啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-6-13 00:30:56 | 显示全部楼层
恭喜恭喜
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 23:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表