嵌入式作业

发布 2022-10-21 05:06:28 阅读 5297

1. 分析归纳tpm、pit、lptmr、rtc各定时器模块的功能及应用场合,列表说明。

2. 编写dac模块程序,分别配置缓冲区操作模式为缓冲区正常模式和缓冲区单次扫描模式,完成三角波发生器功能。

/ dac驱动程序。

typedef struct

dacx dacx配置dac模块号。

dac_memmapptr dacx_base_ptr选择dac通道号。

unit8_t water_mark_mode选择水印模式的数字。

unit8_t buffer_enable配置buffer缓冲区使能。

unit8_t buffer_mode配置buffer缓冲区的模式。

unit8_t triger_mode配置触发器模式。

unit8_t buffer_init_pos配置buffer缓存区的起始位置。

unit8_t buffer_up_limit配置buffer缓冲区的最大长度。

unit8_t dac_irqc选择dac中断模块。

dac_isr_callback isr_func设置回掉函数。

lpld_dac_cfg_t;

/ 对dac_config进行默认配置。

unit8_t lpld_dac_init(lpld_dac_cfg_t *dac_config)

水印模式的字数默认为一个字节。

if(dac_config ->water_mark_mode ==null)

dac_config ->water_mark_mode = water_mode_1word;

缓冲区使能默认为禁用缓冲区。

if(dac_config ->buffer_enable ==null)

dac_config ->buffer_enable = buffer_disable;

缓冲区模式默认为正常模式。

if(dac_config ->buffer_mode ==null)

dac_config ->buffer_mode = buffer_mode_normal;

/ 触发模式默认为无触发模式。

if(dac_config ->triger_mode ==null)

dac_config ->triger_mode = trifer_mode_none;

缓冲区的起始位置默认为0

if(dac_config ->buffer_init_pos ==null)

dac_config ->buffer_init_pos = 0;

缓冲区的最大值为16

if(dac_config ->buffer_up_limit ==null)

dac_config ->buffer_up_limit = 15;

中断方式默认为不开中断。

if(dac_config ->dac_irqc ==null)

dac_config ->dac_irqc = 0;

配置dma寄存器。

return lpld_dac_config(dac_config);

/ 设置dac通道的缓冲区数据。

void lpld_dac_set_buffer(dacx dacx,unit8 dacx_datn,unit16 data16)

/ 配置端口基地址。

dac_memmapptr dacptr = dac_ptr[dacx];

/ 配置dac缓存区地址好。

dac_dalt_reg(dacptr,dacx_datn) =data16 &0x0ff);

/ 配置相应缓冲区的数据。

dac_dath_reg(dacptr,dacx_datn) =data16 &0xf00)>>8;

/ 定义初始化结构体。

lpld_dac_cfg_t dac_config;

/ 三角波函数。

void main (void)

int i=0,j;

char delta=1;

/ 选择dac0,dac0引脚输出。

dac_ =dac0_base_ptr;

lpld_dac_init(&dac_config);

while(1)

上述**决定每次循环的输出值是增还是减,因为我们要输出三角波,因。

/ 此不管波形的增加还是减小,它都是线性变化的,当到达底部后,让每次。

/ 变化为递增delta,当达到顶部后,让每次变化为递减delta,这个delta

/ 值默认设置为1

3. 从从机的接入、时钟控制、数据传输速度、是否可以实现多主控、作用领域等方面比较。

spi和i2c。

4. 谈谈学习该门课程的收获与体会。

通过一学期嵌入式基础知识的学习和实践,我对嵌入式系统有了一定的了解。

嵌入式系统大体上是指带有微处理器的专用软硬件系统,他们具有自己的操作系统,能实现具体的功能。嵌入式系统有四个层次:功能层、软件层、中间层、硬件层。

不同层次分别包含了不同的模块:

功能层:应用程序。

软件层:文件系统、图形用户接口、任务管理、实时操作系统。

中间层:硬件抽象层、极板支持包。

硬件层:嵌入式微处理器、各类接口。

不过在课程中仅仅掌握理论知识是远远不够的,所以最后三周的实践课给了我们很好的实践机会,让我们将理论付诸于实际,最终在开发板上实现呼吸灯的转换,键盘输入/输出以及传感器数据的采集。在使用kl25嵌入式开发板做工程的时候,我发现c语言尤为重要,不论是做嵌入式软件开发还是硬件开发,c语言都是格外有用的工具。接着,我们应该对操作系统有详尽的了解,这让我们懂得软件是如何支配硬件执行命令的,例如操作系统的进程、线程、操作系统分配资源的方式、操作系统管理硬件的方式。

最后们我们还需要细细学习arm 系列的嵌入式系统,深入理解arm的含义,只有这样才能算得上初步掌握嵌入式的含义。

嵌入式作业

电力设备测控系统中的总线通讯协议实现。程俊 200910302013 一 程序实现的功能 嵌入式系统作为测控系统主机,依次每隔30秒获取设备数据,发送给各个传感器。1 程序实现是通个定义的一个数组,然后数组中分别放入 起始标记aa 设备类型 设备编号 数据发送请求55 校验位这里采用求和校验,而将第...

嵌入式作业

专业 电子信息工程班级 电信10 1 任课教师 姓名 学号成绩。题目 查阅相关资料,你认为选用哪一种硬件 芯片 和软件比较适合本专业的要求?为什么?答 个人觉得选用三星的6410芯片更适合本专业的要求,6410对比与2440不会更容易被淘汰,而且现在6410有很多开发板可以供我们自学,比如飞凌的ok...

嵌入式作业

include 基本系统数据类型。include 提供socket函数及数据结构。include 标准输入输出。include 标准库。include 提供错误号errno的定义,用于错误处理。include 字符串函数定义。include read函数 write函数和getpid函数等头文件。i...