当前位置: 首页 > news >正文

宁波网页网站制作热点军事新闻

宁波网页网站制作,热点军事新闻,网站设计是不是会要用代码做,凡科平台登录一. RTOS的概念 // 经典单片机程序 void main() {while (1){喂一口饭();回一个信息();} } ------------------------------------------------------ // RTOS程序 喂饭() {while (1){喂一口饭();} }回信息() {while (1){回一个信息();} }void main() {create_task(喂饭);cr…

一. RTOS的概念

// 经典单片机程序
void main()
{while (1){喂一口饭();回一个信息();}
}
------------------------------------------------------
// RTOS程序    
喂饭()
{while (1){喂一口饭();}
}回信息()
{while (1){回一个信息();}
}void main()
{create_task(喂饭);create_task(回信息);start_scheduler();while (1){sleep();}
}

二.FreeRTOS目录结构

三.从官方源码裁剪

1. 下载

2. 删减目录

3. 编译、执行

4. 添加串口打印功能

  • 去掉无关的代码:LCD等

  • 增加串口打印功能

    • 初始化串口

    • 实现fputc

四. 创建任务

BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数const char * const pcName, // 任务的名字const configSTACK_DEPTH_TYPE usStackDepth, // 栈大小,单位为word,10表示40字节void * const pvParameters, // 调用任务函数时传入的参数UBaseType_t uxPriority, // 优先级TaskHandle_t * const pxCreatedTask // 任务句柄, 以后使用它来操作这个任务); 

1.创建第一个任务 

void Task1Function(void*param)//函数指针
{while(1){printf("1");}
}/*-----------------------------------------------------------*/int main( void )
{TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);//创建任务/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

不断的执行1 

2.创建第二个任务 

void Task1Function(void*param)
{while(1){printf("1");}
}
void Task2Function(void*param)
{while(1){printf("2");}
}
/*-----------------------------------------------------------*/int main( void )
{TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);xTaskCreate(Task2Function,"Task2",100,NULL,1,NULL);//这里没有加句柄/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

3.动态内存的使用 

        TCB_t * pxNewTCB;//任务控制块BaseType_t xReturn;

对于每一个任务都有一个TCB_t 结构体,对于这个结构体可以使用动态分配也可以静态分配。动态分配在程序里面使用 xTaskCreate();

    TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */const uint32_t ulStackDepth,void * const pvParameters,UBaseType_t uxPriority,StackType_t * const puxStackBuffer,StaticTask_t * const pxTaskBuffer ){
void Task1Function(void*param)
{while(1){printf("1");}
}
void Task2Function(void*param)
{while(1){printf("2");}
}
void Task4Function(void*param)
{while(1){     printf("3");}
}/*-----------------------------------------------------------*/
StackType_t xTask4Stack[100];//100*4字节
StaticTask_t xTask4TCB;StackType_t xIdleTaskStack[100];//100*4字节
StaticTask_t xIdleTaskTCB;void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,StackType_t ** ppxIdleTaskStackBuffer,uint32_t * pulIdleTaskStackSize )
{*ppxIdleTaskTCBBuffer = &xIdleTaskTCB;*ppxIdleTaskStackBuffer = xIdleTaskStack;*pulIdleTaskStackSize = 100;
}int main( void )
{LED_Init();TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);xTaskCreate(Task2Function,"Task2",100,NULL,1,NULL);xTaskCreateStatic(Task4Function,"Task4",100,NULL,1,xTask4Stack,&xTask4TCB);/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

http://www.yayakq.cn/news/395696/

相关文章:

  • 商务网站建设论文答辩ppt中国建筑装饰网排行
  • 个人网站可以做点什么企业投资建设公益性项目
  • 企业网站文章后台添加做幼儿手工网站
  • 北京中心网站建设国外虚拟主机 两个网站
  • 瑞安电影城网站建设即墨网站建设
  • 营销型网站建设大千番茄网络营销策划方案
  • 建域名做网站网站建设丿金手指15
  • 网站诸多慧聪网官方网站
  • 郑州建站以来做预定网站的作用
  • 制作网站题材报告总结网站建设实验
  • 做网站的注意事项成都网站建设kaituozu
  • 诚讯通网站大石桥网站建设
  • 网站制作公司网站建设公司购买网站app制作
  • 浙江建设技术职业学院网站网站建设完成后如何备案
  • 专业网站建设新闻海外seo网站推广
  • 建网站成本网页设计企业宣传网站
  • asp.net做网站的流程网站页面建设方案书模板
  • 温州网页建站模板个人怎么建设网站
  • 网站如何做定级备案seo门户网
  • 保定网站搜索排名龙潭湖网站建设
  • 高级网站开发工程师证书网站备案 空间备案 域名备案
  • 大兴区网站建设手机端网站的区别吗
  • 建设部网站官网证书编号wordpress建网站视频
  • 网站建设流程笔记aspx网站跳转代码
  • 网站优化排名易下拉技术课件模板下载免费
  • 怎么做网站寄生虫空间设计网站大全
  • 企业网站建设需要的资料wordpress添加左侧菜单
  • 网站建设哪儿济南兴田德润什么活动优化seo公司哪家好
  • 企业电子商务网站的域名命名赣州百度推广
  • 网站特点怎么写武威 网站建设