77范文网 - 专业文章范例文档资料分享平台

嵌入式作业 - 图文

来源:网络收集 时间:2020-05-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1. 分析归纳TPM、PIT、LPTMR、RTC各定时器模块的功能及应用场合,列表说明。

TPM TPM共有三个模块,TPM0、TPM1、TPM2,TPM0有6个通道,TPM1和TPM2只有2个通道。TPM支持输入捕捉、输出比较,并能产生脉宽调信号(PWM)来控制电机。通过异步时钟源,可以让计数器、输出比较和捕捉寄存器工作在低功耗模式下,所以KL25的TPM模块又可以称为LPTPM。 周期中断定时器模块PIT是一组可以用于产生中断和触发器DMA通道定时器。该模块的中断都是可屏蔽的,每个定时器都有独立的溢出周期,此外,周期终端定时器模块没有外部引脚。PIT的基本操作有: 1.定时器:当使能时,定时器定期产生触发 2.调试模式:调试模式下,定时器由MCR[FRZ]决定是否冻结 3.中断:所有定时器都支持中断的产生 低功耗定时器LPTMR可以被配置成具有可选预分频因子的定时计数器,也可以被配置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系统复位都不会影响其继续使用,可以用作天数计数 LPTMR可应用于脉冲技术和定时中。 功能 应用场合 TPM是递增计数器,通过设定模块的溢出值,当计数器达到该数值时产生中断。输入捕捉功能靠中断来实现。 PIT可实现定时中断功能。 PIT LPTMR 器。LPTMR模块共有5种操作模式,即运行模式、等待模式、停止模式、低漏电模式和调试模式。在这五种模式下,LPTMR都可以正常工作。在等待模式、停止模式、低漏电模式下,可以通过配置LPTMR,产生一个中断请求,退出低功耗模式。 实时时钟RTC模块是一个独立供电的模块,在芯片掉电时由备用电源供电,确保RTC计时器正常运行,保持RTC寄存器运行状态。RTC模块主要包含外部晶体振荡器、POR块、RTC计时器以及自身的软件复位控制位。外部晶体振荡器为RTC计时器或其他外设提供32.768kHz的时钟;POR块在RTC模块上电时产生一个上电复位信号,将所有的RTC寄存器初始化为默认状态;RTC计时器由一个具有报警功能的32位秒寄存器和一个具有补偿功能的16位预分频寄存器组成;RTC自身的软件复位控制位,也会初始化所有的RTC寄存器。在VBAT掉电或POR中断时,不允许访问RTC任何寄存器(除控制寄存器),否则将产生总线错误。 RTC可应用在日历和闹钟历。 RTC 2. 编写DAC模块程序,分别配置缓冲区操作模式为缓冲区正常模式和缓冲区单次扫描模

式,完成三角波发生器功能。

// DAC驱动程序 typedef struct {

// 对DAC_Config进行默认配置

unit8_t LPLD_DAC_Init(LPLD_DAC_Cfg_t *DAC_Config) {

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

if(DAC_Config -> Buffer_Mode == NULL)

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

if(DAC_Config -> Buffer_Enable == NULL)

DAC_Config -> Buffer_Enable = BUFFER_DISABLE; 在单次扫描模式下,这里改为BUFFER_MODE_ONETIMESCAN; DACx dacx;

// 配置DAC模块号 // 选择水印模式的数字 // 配置buffer缓冲区使能 // 配置buffer缓冲区的模式 // 配置触发器模式

// 配置buffer缓存区的起始位置 // 配置buffer缓冲区的最大长度 // 选择DAC中断模块 // 设置回掉函数

DAC_MemMapPtr DACx_Base_Ptr; // 选择DAC通道号 unit8_t Water_Mark_Mode; unit8_t Buffer_Enable; unit8_t Buffer_Mode; unit8_t Triger_Mode; unit8_t Buffer_Init_Pos; unit8_t DAC_irqc;

unit8_t Buffer_Up_Limit;

DAC_ISR_CALLBACK isr_func;

}LPLD_DAC_Cfg_t;

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

if(DAC_Config -> Water_Mark_Mode == NULL)

DAC_Config -> Water_Mark_Mode = WATER_MODE_1WORD;

DAC_Config -> Buffer_Mode = BUFFER_MODE_NORMAL; // 触发模式默认为无触发模式 }

// 设置DAC通道的缓冲区数据

void LPLD_DAC_Set_Buffer(DACx dacx,unit8 DACx_DATn,unit16 data16) {

// 配置端口基地址 }

// 定义初始化结构体

LPLD_DAC_Cfg_t dac_config;

DAC_MemMapPtr dacptr = DAC_Ptr[dacx]; // 配置DAC缓存区地址好

DAC_DALT_REG(dacptr,DACx_DATn) = (data16 &0x0ff); // 配置相应缓冲区的数据

DAC_DATH_REG(dacptr,DACx_DATn) = (data16 &0xf00)>>8; // 配置DMA寄存器

return LPLD_DAC_Config(DAC_Config); // 中断方式默认为不开中断

if(DAC_Config -> DAC_irqc ==NULL)

DAC_Config -> DAC_irqc = 0; // 缓冲区的最大值为16

if(DAC_Config -> Buffer_UP_Limit == NULL)

DAC_Config -> Buffer_Up_Limit = 15; // 缓冲区的起始位置默认为0

if(DAC_Config -> Buffer_Init_Pos == NULL)

DAC_Config -> Buffer_Init_Pos = 0; if(DAC_Config -> Triger_Mode == NULL)

DAC_Config -> Triger_Mode = TRIFER_MODE_NONE;

// 三角波函数 void main (void) {

int i=0,j; char delta=1;

// 选择DAC0,DAC0引脚输出

dac_config.DACx_Base_Ptr = DAC0_BASE_PTR; LPLD_DAC_Init(&dac_config); while(1) { }

// 上述代码决定每次循环的输出值是增还是减,因为我们要输出三角波,因 // 此不管波形的增加还是减小,它都是线性变化的,当到达底部后,让每次 // 变化为递增DELTA,当达到顶部后,让每次变化为递减DELTA,这个DELTA // 值默认设置为1 }

if(i==0)

delta=1; delta=1; else if(i==4095) i+=delta;

LPLD_DAC_Set_Buffer(DAC0,0,i); for(j=0;j<10;i++)

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

SPI和I2C。 从机的接入 SPI是典型的“主机-从机”系统。一个SPI系统。由一个主机和一个或多个从机构成,主机启动一个与从机的同步通信,从而完成数据的交换。提供SPI串行时钟的SPI设备称为SPI主机或者主设备,其他设备则成为SPI从机或者从设备。在MCU扩展外设结构中,仍然使用主机-从机的概念,此时MCU必须工作于主机方式,外设工作于从机方式。 SPI I2C 为了消除I2C总线系统中主机与从机的地址选择线,最大限度地简化总线连接线,I2C采用了独特的寻址约定,规定了起始信号后的第一个字节为寻址字节,用以寻址从机并规定数据传送方向。 方向位为0时,表示主机将数据写入从机,方向位为1时反之。主机发送起始信号后,立即发送寻址字节,这时总线上的所有器件都将寻址字节中的7位地址与自己器件的地址相比较。如果两者相同,则该器件认为被从机寻址,并发送应答信号,从机根据数据方向位确定自身是发送器还是接收器。 时钟 控制 SPI的数据传输是在时钟信号SCK的控制下完成的。数据传输过程涉及时钟相位与时钟极性两个概念。时钟极性是指时钟信号在空闲时是高电平还是低电平,所谓时钟相位是指时钟信号SCK的第一个沿边出现在第一位数据传输周期的中央位置还是开始位置。主机和从机必须使用同样的时序模式才能正常通信。总体要求是:确保发送数据在一周期开始的时刻上线,接收方在1/2周期的时刻从线上读取,这样是最稳定的通信方式。 如果某从设备在时钟的上升沿输入数据,在下降沿输出数据。那么,主机的SPI时钟配置应为在时钟的上升沿输出数据,下降沿输入数据,因此主设备SPI时钟极性应配置为下降沿有效。只有正确地配置时钟极性和时钟相位,数据才能够被准确地发送和接收。因此必须严格对照从设备的SPI接口时序来配置主设备时钟。 在四种状态下进行时钟控制。 开始信号START: 当SCL为高电平时,SDA由高电平向低电平跳变,产生开始信号。当总线空闲的时候,主机通过发送开始信号START建立通信。 停止信号STOP: 当SCL为高电平时,SDA由低电平向高电平跳变,产生停止信号。主机通过发送停止信号,结束时钟信号和数据通信。SDA和SCL都将被复位为高电平状态。 重新开始信号Repeated START: SCL为高电平时,SDA由高电平向低电平跳变,产生重新开始信号,它的本质就是一个开始信号。 应答信号A: 应答信号是在发送了8个数据位之后,第9个时钟周期出现的,这时主机必须在这一时钟位上释放数据线,由接收设备拉低SDA电平来产生应答幸好或者由接收设备保持SDA的高电平来产生非应答信号,一个完整的字节数据传输需要9个时钟脉冲。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库嵌入式作业 - 图文在线全文阅读。

嵌入式作业 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1071099.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: