HCS12XEP100 ATD模块定时中断采样
//Name:ATD of HCS12XEP100
//Description:多通道采样,开启转换序列完成中断,在中断中完成数据存取;
//单次转换模式,通过定时中断触发;
//对程序稍作修改还可以实现:1)扫描方式采样,在序列转换完成中断中存取转换结果(即关闭PIT中断,在
//初始化AD模块时通过ATD0CTL5寄存器选择扫描模式,单次序列转换完成后模块即自动开始下次转换);
//2)单次转换模式,通过设置标志变量,在序列转换完成中断里决定是否启动下次AD转换,使用方式举例:
//利用PIT设定AD转换触发时间,通过一个变量(每次进序列完成中断后自加),来决定是否启动下次AD转换
//从而实现定时触发转换,一次触发后连续采样n次得到n组结果用于作均值滤波等处理,这样主函数中用到的
//AD结果实际上就相当于经过滤波处理的值
//Date:05/24/2011
//Written by RXDu, NCEPU
#include <hidef.h>
#include 'derivative.h'
#define ATDSTART ATD0CTL5=0x10
word adValue[7];
//Config ATD
void InitATD(void)
{
ATD0CTL1_SRES=0b10;
ATD0CTL2=0x42;
ATD0CTL3=0xb8; //7 channels
//ATD0CTL3=0xc0; //8 channels
ATD0CTL4=0x23; //8M
//ATD0CTL5=0x30; //Scan Mode
ATD0CTL5=0x10; //Single sequence, Multi-channel
}
//Config PIT
void InitPIT(void)
{
PITCFLMT_PITE=0;
PITMTLD1=63; //1M
PITCE_PCE3=1;
PITMUX_PMUX3=1;
PITLD3=999; //1M/(999+1)=0.001M=1KHZ ~ 1ms
PITINTE_PINTE3=1;
PITCFLMT_PITE=1;
}
void main(void)
{
DisableInterrupts;
InitPIT();
InitATD();
EnableInterrupts;
for(;;)
{
//_FEED_COP();
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
//PIT定时中断,1ms触发一次
interrupt 69U void PIT3_ISR(void)
{
PITTF_PTF3=1;
ATDSTART; //启动AD转换
}
//AD转换序列完成中断
interrupt 22U void ATD_ISR(void)
{
adValue[0]=ATD0DR0;
adValue[1]=ATD0DR1;
adValue[2]=ATD0DR2;
adValue[3]=ATD0DR3;
adValue[4]=ATD0DR4;
adValue[5]=ATD0DR5;
adValue[6]=ATD0DR6;
}
HCS12XEP100 ATD模块定时中断采样相关推荐
- STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)
本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...
- 备赛电赛学习STM32篇(五):TIM定时中断
目录 一.TIM简介 1.1.简介 1.2.基本定时器 2.2.通用定时器 1.3.高级计数器 编辑 二.定时中断和内外时钟源选择 2.2 时基单元运行时序举例 2.2.1缓冲(影子)寄存器 2.2 ...
- zynq网络时钟控制寄存器_ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断...
软件的定时中断很难控制精准触发沿的位置,可以通过 PL-PS 的中断完成精准的定时中断.PL 的中断通过 Verilog 代码产生,这样紧密结合 PS-PL 的处理,发挥各自的优势. 一.PL 侧定时 ...
- TIM定时中断(定时器介绍)
一.TIM简介 TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器.预分频器.自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.6 ...
- 51定时中断系统控制LED点阵屏显示逐帧动画
写在前面 最近回头看之前写的文章感到一种很浓的公式感,我确实是提前写好了模板每次都套用,整篇看下来感觉就像是在交老师布置的实验报告,看起来很成熟但实际上背离了自己的初衷,接下来我会尽可能的复现自己在做 ...
- 实现定时中断_EPIT 定时器,仅需做到如下几步,即可轻松配置使用
EPIT 的全称是: Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的.学过 STM32 的话应该知道, STM32 ...
- stm32工程和算法分享(12)--精准闪烁灯[定时中断]
stm32工程和算法分享(12)–精准闪烁灯[定时中断] 两种方式 闪烁与定时器同步 利用标志位,定时器设置的时间间隔较小 不要在定时器中断函数写太多语句,我们通常借助标志位来实现 我们设置400ms ...
- 【STM8L】STM8L之timer2定时中断
本篇博文最后修改时间:2016年11月15日,03:03. 一.简介 本文介绍STM8L系列如何使用timer2产生定时中断. 二.实验平台 编译软件:IAR for STM8 1.42.2 硬件平台 ...
- EPSON RX8010SJ RTC 调试笔记之五, 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function)
硬件: EPSON RX8010 SJ 功能描述: 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function) 产生一个循环周期的中断事件, 在 244.14u ...
最新文章
- Android进程间通信的方式
- PYTHON高级全栈开发工程师-老男孩教育
- 让理科生沉默,让文科生落泪的文史综合题
- ~~做过的好玩的题~~
- 如何让Excel里显示的数字避免通过科学计数法来显示
- 程序员基本功 07 面向对象的陷阱
- C++vector容器-构造函数
- Linux 系统版本信息
- Java 关于类的专题
- Spring中引入其他配置文件
- 你是这样理解shell编程的嘛?
- 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...
- ssm三大框架的优缺点
- php mysql 微博系统_基于校网学堂的校园微博系统设计与实现(PHP,MySQL)(含录像)
- 报税远程服务器返回错误,紧急 | 增值税申报失败,调用系统服务出错,怎么办?...
- 路由器第三方固件的刷入与调试
- 无法复制Word文档里的内容
- python菜鸟教程官网绘图-Python Tkinter 画布(Canvas)
- 关于ca以及证书颁发的一些事
- Matlab小实例(一)