1614|1

92

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

泰凌微B91开发套件---freertos [复制链接]

本帖最后由 xiaolinen 于 2022-10-18 22:44 编辑

一:叙述

       本来这篇是想做一个总结的,但是因为测评使用过程中出现的问题已经记录,并且在实际开发过程中要用到freertos实时系统,所以不再总结,而是在官方提供的freertos_demo中进行了更改,算是做一个小小的测试!

二:程序

            在FreeRTOSConfig.h文件中,将configTICK_RATE_HZ宏定义由500修改为了1000;

  • /********************************************************************************************************
  • * @File main.c
  • *
  • * @brief This is the source file for B91m
  • *
  • * @author Driver Group
  • * @date 2019
  • *
  • * @par Copyright (c) 2019, Telink Semiconductor (Shanghai) Co., Ltd. ("TELINK")
  • * All rights reserved.
  • *
  • * Licensed under the Apache License, Version 2.0 (the "License");
  • * you may not use this file except in compliance with the License.
  • * You may obtain a copy of the License at
  • *
  • * http://www.apache.org/licenses/LICENSE-2.0
  • *
  • * Unless required by applicable law or agreed to in writing, software
  • * distributed under the License is distributed on an "AS IS" BASIS,
  • * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • * See the License for the specific language governing permissions and
  • * limitations under the License.
  • *
  • *******************************************************************************************************/
  • #include "app_config.h"
  • #include "calibration.h"
  • #include <FreeRTOS.h>
  • #include <task.h>
  • #include <queue.h>
  • #include <timers.h>
  • #include <stdio.h>
  • #define timerTick 4
  • static TaskHandle_t test_handle=NULL;
  • static TimerHandle_t softWaveTimer=NULL;
  • static uint32_t MboxValue;
  • static void test_task(void *pvParameters){
  • uint32_t notifyValue;
  • while(1){
  • if(pdTRUE == xTaskNotifyWait((uint32_t )0x00,(uint32_t)0xffffffff,(uint32_t*)¬ifyValue,0)){
  • printf("Hello!\r\n");
  • }
  • if(notifyValue >= timerTick){
  • xTimerStop(softWaveTimer,0);
  • }
  • vTaskDelay(10);
  • }
  • (void)(pvParameters);
  • }
  • extern void vPortRestoreTask();
  • void pxSoftWaveTimer(TimerHandle_t xTimer)
  • {
  • uint32_t TimerID;
  • TimerID = (uint32_t)pvTimerGetTimerID(xTimer);//获取定时器ID
  • if(TimerID == 1){
  • xTaskNotify((TaskHandle_t )test_handle,(uint32_t )MboxValue,(eNotifyAction)eSetValueWithOverwrite);
  • MboxValue++;
  • }
  • }
  • /**
  • * @brief This is main function
  • * @return none
  • */
  • int main (void)
  • {
  • sys_init(LDO_1P4_LDO_1P8, VBAT_MAX_VALUE_GREATER_THAN_3V6);
  • user_read_flash_value_calib();
  • CCLK_24M_HCLK_24M_PCLK_24M;
  • if(0 ){// deepRetWakeUp
  • vPortRestoreTask();
  • }else{
  • xTaskCreate( test_task,"test",configMINIMAL_STACK_SIZE,NULL,0,&test_handle );
  • softWaveTimer = xTimerCreate("softwaveTimer",1000,pdTRUE,(void*)1,pxSoftWaveTimer);
  • xTimerStart(softWaveTimer,0);
  • vTaskStartScheduler();
  • }
  • return 0;
  • }

三:现象

 

查看本帖全部内容,请登录或者注册
此帖出自无线连接论坛

最新回复

这个总结好!   详情 回复 发表于 2022-10-20 07:18
点赞 关注
 

回复
举报

7188

帖子

11

TA的资源

版主

沙发
 

这个总结好!

此帖出自无线连接论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表