//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模块定时中断采样相关推荐

  1. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

  2. 备赛电赛学习STM32篇(五):TIM定时中断

    目录 一.TIM简介 1.1.简介 1.2.基本定时器 2.2.通用定时器 1.3.高级计数器 ​编辑 二.定时中断和内外时钟源选择 2.2 时基单元运行时序举例 2.2.1缓冲(影子)寄存器 2.2 ...

  3. zynq网络时钟控制寄存器_ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断...

    软件的定时中断很难控制精准触发沿的位置,可以通过 PL-PS 的中断完成精准的定时中断.PL 的中断通过 Verilog 代码产生,这样紧密结合 PS-PL 的处理,发挥各自的优势. 一.PL 侧定时 ...

  4. TIM定时中断(定时器介绍)

    一.TIM简介 TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器.预分频器.自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.6 ...

  5. 51定时中断系统控制LED点阵屏显示逐帧动画

    写在前面 最近回头看之前写的文章感到一种很浓的公式感,我确实是提前写好了模板每次都套用,整篇看下来感觉就像是在交老师布置的实验报告,看起来很成熟但实际上背离了自己的初衷,接下来我会尽可能的复现自己在做 ...

  6. 实现定时中断_EPIT 定时器,仅需做到如下几步,即可轻松配置使用

    EPIT 的全称是: Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的.学过 STM32 的话应该知道, STM32 ...

  7. stm32工程和算法分享(12)--精准闪烁灯[定时中断]

    stm32工程和算法分享(12)–精准闪烁灯[定时中断] 两种方式 闪烁与定时器同步 利用标志位,定时器设置的时间间隔较小 不要在定时器中断函数写太多语句,我们通常借助标志位来实现 我们设置400ms ...

  8. 【STM8L】STM8L之timer2定时中断

    本篇博文最后修改时间:2016年11月15日,03:03. 一.简介 本文介绍STM8L系列如何使用timer2产生定时中断. 二.实验平台 编译软件:IAR for STM8 1.42.2 硬件平台 ...

  9. EPSON RX8010SJ RTC 调试笔记之五, 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function)

    硬件: EPSON RX8010 SJ 功能描述: 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function) 产生一个循环周期的中断事件, 在 244.14u ...

最新文章

  1. Android进程间通信的方式
  2. PYTHON高级全栈开发工程师-老男孩教育
  3. 让理科生沉默,让文科生落泪的文史综合题
  4. ~~做过的好玩的题~~
  5. 如何让Excel里显示的数字避免通过科学计数法来显示
  6. 程序员基本功 07 面向对象的陷阱
  7. C++vector容器-构造函数
  8. Linux 系统版本信息
  9. Java 关于类的专题
  10. Spring中引入其他配置文件
  11. 你是这样理解shell编程的嘛?
  12. 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...
  13. ssm三大框架的优缺点
  14. php mysql 微博系统_基于校网学堂的校园微博系统设计与实现(PHP,MySQL)(含录像)
  15. 报税远程服务器返回错误,紧急 | 增值税申报失败,调用系统服务出错,怎么办?...
  16. 路由器第三方固件的刷入与调试
  17. 无法复制Word文档里的内容
  18. python菜鸟教程官网绘图-Python Tkinter 画布(Canvas)
  19. 关于ca以及证书颁发的一些事
  20. Matlab小实例(一)

热门文章

  1. php中文本框透明度,css怎么设置透明度
  2. ubuntu完全卸载CUDA
  3. [音视媒体制作]小巧的音频处理工具 GoldWave 进阶教程
  4. js动态生成echarts图表,并生成图片保存到本地,自定义图片名。
  5. 003 愚人节的“礼物”
  6. 最新ie图标变灰css,css+js整站变灰(兼容IE7+)
  7. 基于apollo实现配置灰度发布
  8. 电路分析第二章 运算放大器
  9. Tensorflow目标检测之yolov3训练自己的模型
  10. PHP 观察者模式 理解