找回密码
 立即注册
楼主: txbweiwu123

学习Ai8051U教学视频心得实验箱

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-10-27 09:06:53
已绑定手机

1

主题

12

回帖

91

积分

注册会员

积分
91
发表于 前天 17:02 | 显示全部楼层
这是第八集的第二部分

一,文件的创建
创建文件需要三步:新建文件并保存,添加到工程,添加引用路径。
一般的一个.c和一个.h文件执行一个设置或一个任务或功能。这样可以让代码简洁。
.h文件格式:
#ifndef_XXX_H
#define_XXX_H
调用头文件
函数声明
#endif
.c文件格式
#include xxx.h
函数定义
添加文件一定要记得引用路径和添加到工程里。
编写好文件后,打开工程设置,将文件所在的路径添加到工程中。
二,结构体
什么是结构体:将一些有内置联系的不同变量组织起来,封装成一个整体,即定义一个结构体,这是一种新的数据类型。
结构体声明:使用关键字struct
struct结构体名     //结构体名并非必要
{
成员列表
}
Typedef struct
{
U8 run;                //任务状态
U16 timcount;          //定时计数器
U16 tritime;            //重载计数器
Void*taskhook(void);//任务函数也是一个函数指针可以调用任何参数为空,返回值为空//的函数
} TASK_COMPONENTS;
Static TASK_COMPONENTS Task_coms[] = //创建结构体数组
{
//状态  计数  周期  函数
{0,    1,    1,  执行功能},
{0,    10,   10,  执行功能},
};
在工程中创建两个文件:task.ctask.h
task.c中输入
#include task.h
Typedef struct
{
U8 run;//任务状态
U16 timcount;//定时计数器
U16 tritime;//重载计数器
Void*taskhook(void);//任务函数
} TASK_COMPONENTS;
Static TASK_COMPONENTS Task_coms[] =
{//状态 计数 周期   函数
{0,  1,  1,    samle_display},
{0,  1010,   samle_matrixkey},
{0,  1010,   samle_adckey},
{0,  300300samle_NTC},
{0,  500500samle_RTC},
//这里还可以添加其他任务
};
Task.h中输入
#ifndef  __TASK_H
#define __TASK_H
#include config.h
Typedef struct
{
U8 run;//任务状态
U16 timcount;//定时计数器
U16 tritime;//重载计数器
Void*taskhook(void);//任务函数
} TASK_COMPONENTS;
Void task_marks_handler_callback(void);
Void task_pro_handler_callback(void);
#endif
就可以实现定时器周期性多任务调度系统。

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-10-27 09:06:53
已绑定手机

1

主题

12

回帖

91

积分

注册会员

积分
91
发表于 昨天 09:14 | 显示全部楼层
第八集的内容比较多,而且涉及 的概念也多,函数,指针,数组,结构体,糅杂在一起,需要很好的C语言功底才能理解和应用,多花点时间去学习。
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-28 02:05 , Processed in 0.171738 second(s), 50 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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