K60学习记录


前言

提示:记录一可在我的文章找到


一、ADC的使用

A/D在进行转化时,一般都需要经过采样、量化和编码三个步骤。A/D转换的过程是需要时间的,我们可以在连续变化的模拟量上按一定的时间规律取得对应的瞬时值,量化后以数字的形式输出,从而可以实现从模拟量到数字量的转化。

A. ADC的初始化

B. 转换时间的计算

一:最快的转换时间为输入时钟为总线时钟bus_clock(48MHZ),即ADICLK=00,(注:K60N512内部集成的高性能的AD模块转换精度为16位,最高时钟频率为50MHZ)。分配比率为1,ADIV=00,即ADCK=bus_clock。硬件平均因子取1,不采用硬件均值功能,即AVGE=0。基本转换时间16位单工。短时间采样,即ADLSMP=0。不采用高速转换时间,即ADHSC=0。
5ADCK+5bus_clock+25ADCK=35/4810-6s=0.73us
二:分配比率为1,ADIV=00,即ADCK=bus_clock。硬件平均因子取1,不采用硬件均值功能,即AVGE=0。基本转换时间16位单工。长时间采样,即ADLSMP=1,ADLSTS=11。不采用高速转换时间,即ADHSC=0。
3ADCK+5bus_clock+25ADCK+2ADCK=35/48*10-6s=0.73us

C.应用编程要点

打开ADC电源(设置ADC_CONTR中的ADC_POWER位);
适当延时,等ADC内部模拟电源稳定。一般延时1ms即可;
设置P1口中的相应口线作为AD转换模拟量输入通道(设置P1ASF寄存器);

选择ADC通道(设置ADC_CONTR中的CHS2-CHS0位);
根据需要设置转换结果存储格式(设置CLK_DIV中ADRJ位);
查询AD转换结束标志ADC_FLAG,判断AD转换是否完成,若完成,则读出AD转换结果(保存在ADC_RES和ADC_RESL寄存器中),并进行数据处理。如果是多通道模拟量进行转换,则更换AD转换通道后要适当延时,使输入电压稳定,延时量取20-200us即可(与输入电压源的内阻有关),如果输入电压源的内阻在10KΩ以下,可不加延时;

采用中断方式,还需进行中断设置(中断允许和中断优先级);
在中断服务程序中读取AD转换结果,并将ADC中断请求标志ADC_FLAG清零。


二、DAC的使用

A. DAC初始化

  1. dac_init_struct.DAC_Dacx = DAC0; //选择通道
  2. LPLD_DAC_Init(dac_init_struct);//使能初始化函数

B. 输出

  1. 细节部分通过CSDN学习中
  2. 输出三角波,正弦波
类型名称描述取值
DAC_Type *dacxDACx模块号DAC0–DAC0 DAC1–DAC1
DAC_Type *dacxDACx模块号DAC0–DAC0 DAC1–DAC1
uint16data缓冲区输出数据0~4095–12位数据
uint8num指定缓冲区位置1~16–缓冲区第1至16个字

我们可以把输出的电平进行归一化再分成多份,比如一百份,将其存在数组中,再定时输出,就可以输出一个较为完整的波形了

三、定时器的使用

A. 定时器的初始化和定时器的关闭

  1. LPLD_PIT_Init();
  2. LPLD_PIT_Deinit();

B. 配置定时器参数

  1. 选择定时器
  2. 设置定时器周期
  3. 中断函数使能

C. 中断函数


四、数码管的使用

A. GPIO使能

  1. 两个GPIO PTC10PTC12控制亮的灯 分别给 00 01 10 11;进行控制
  2. 八个引脚控制亮的部位
  3. 进行使能,先将其全部设为低电平

B. 动态显示

动态显示的原理其实是一位一位的操作操作每个数码管,因为对每一位的操作特别快,并且在一直轮流给数,原理其实就是利用了人眼的视觉暂留效果和发光管的余晖作用来达到效果,只是操作的比较快,我们人眼视觉分辨不出来,就会觉得是动态显示的。

C. 编写显示数字函数,以及选择管的函数

  1. 主函数循环显示
  2. 给一定的延时

五、测频和测周期

A. 测频法频率

  1. 测频法是在一段闸门时间内对输入信号周期进行计数
  2. 设置GPIO上升沿/下降沿触发,并开启定时器进行计时
  3. 计时结束,计算触发次数,算出频率

B. 测周法测频率

  1. 先设置上升沿触发
  2. 触发后开启定时器,并改成下降沿触发
  3. 触发后得到一个周期时间
  4. 计算频率

总结

A. 实现其他功能
B. 了解不同的配置
C. 回顾实现原理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从FFT学起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值