物联网操作系统学习笔记——列表及列表项

列表及列表项概念及其应用

列表和列表项
任务调度列表介绍
在这里插入图片描述
其他组件列表介绍
在这里插入图片描述
双向链表结构
1:插入与删除效率高,只要操作一次就能完成。
2:对数据的管理更加灵活与便捷,有利于编写逻辑清晰的程序。
在这里插入图片描述
列表与列表项
在这里插入图片描述
freeRTOS列表操作API
vListInitialise()
在这里插入图片描述
vListInitialiseItem()
在这里插入图片描述
vListInsert()
在这里插入图片描述
vListInsertEnd()
在这里插入图片描述
uxListRemove()
在这里插入图片描述
列表及列表项函数应用
功能需求
在这里插入图片描述
功能业务划分
在这里插入图片描述

void Delay_Task(void const * argument)
{
   
  /* USER CODE BEGIN Delay_Task */
	EventBits_t KeyEventBits;

	uint8_t	index;
	static uint8_t record = 0;
	ListItem_t* pListItem;
	
	/*
		1、列表及列表项初始化
	*/
	vListInitialise(&ListTest);
	for(index=0;index<ITEM_NUMBER;index++){
   
	
		vListInitialiseItem(&ListItemTest[index]);
		ListItemTest[index].xItemValue = index;
	
	}	
  /* Infinite loop */
  for(;;)
  {
   
	  /*
		1、修改事件标志组等待状态为 触发后清除标志
		2、检测按键,处理相关功能
	  
	  */
	  KeyEventBits = xEventGroupWaitBits(KeyEventGroup,
								KEY3_EVENT_BIT|KEY4_EVENT_BIT|KEY5_EVENT_BIT|KEY6_EVENT_BIT,
								pdTRUE,
								pdFALSE,
								portMAX_DELAY);
	  printf("Key is Down Key Event Bit is %x\r\n",KeyEventBits);
	  switch(KeyEventBits){
   
		  case KEY3_EVENT_BIT:
			  /*
				当列表项在范围内,允许插入
				插入完毕后,记录值record加一
			  */
			  if(record < ITEM_NUMBER){
   
				vListInsert(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值