C语言ATD1SC,2020-10-13_ATD(模数转换)模块介绍
1、主要寄存器功能说明
(1)ATDCTL0:通道循环选择位,在多通道转换时,决定从哪个通道循环返回值AN0。
(2)ATDCTL1:其中ETRIGSEL、ETRIGCH3--ETRIGCH0决定外部触发源选择(即用外部事件启动AD转换);SRES(1:0)这两位决定转换精度(8、10、12位)。
(3)ATDCTL2:控制标志位快速清除、外部触发源设置(极性、边沿、使能)、序列转换结束中断使能、比较中断使能。
(4)ATDCTL3:DJM(结果数据寄存器对齐方式,只有无符号结果类型)、S8C--S1C(序列转换长度)、结果数据FIFO模式、背景调试状态冻结与否。
(5)ATDCTL4:SMP2--SMP0(采样时间选择)、PRS4--PRS0(ATD模块时钟分频系数,用于设置工作时钟,500KHz--2MHz)。
(6)ATDCTL5:SC(特殊转换通道使能)、SCAN(连续转换模式设置)、MULT(多通道/单通道模式)、CD--CA(转换通道或起始通道)。向这个寄存器写数据,会启动ATD转换,因此也可作为ATD模块启动开关来操作。
2、ATD初始化代码示例
; 模块初始化
ADC_init:
PSHA
PSHB
PSHY
PSHX
MOVB #$01,ATD0CTL0 ; 一共两个通道 0,1 。 从1号通道循环回到0
MOVB #$0F,ATD0CTL1 ; 外部触发通道选择,未启用,可任意值
MOVB #$02,ATD0CTL2 ; 开启序列转换完成中断 ,ATD0_ISR
MOVB #$90,ATD0CTL3 ; 8位精度,右对齐
MOVB #$0B,ATD0CTL4 ; ATD时钟设置,分频系数11, f=Fbus/2(fpiv+1), 1.66MHz ,采样时间:4个时钟周期 ,一次转换大约10μs
PULX
PULY
PULB
PULA
RTC
; 启动一次转换
ADC_start:
PSHA
PSHB
PSHY
PSHX
MOVB #$10,ATD0CTL5 ; 多通道转换 ,一个序列转换结束后进入空闲状态
PULX
PULY
PULB
PULA
RTC
3、补充说明
(1)如果使用多个不连续的通道进行AD转换,其结果数据寄存器的对应关系只和通道顺序有关,和通道号无关,例如使用通道0、2、6进行转换,序列长度为3,结果寄存器的ATDDR0、ATDDR1、ATDDR2分别对应0、2、6通道的转换结果。(通道循环应该设置为6,6号通道完成后,即循环返回至0)
(2)中断模式处理转换序列时,进入中断后,先关中断使能,处理完成后,再开中断使能。
4、AD中断程序
XDEF ATD0_ISR
XREF atd_buff,atd_flg
ATD0_ISR:
; Write your interrupt code here ...
MOVB #$00,ATD0CTL2 ; 关中断
LDX #ATD0DR0L
LDY #atd_buff
LDAB #2
save_data:
MOVB 2,X+,1,Y+ ; 8位模式,数据保存在每个结果寄存器的 L ,所以要+2
DBNE B,save_data
MOVW #$0003,ATD0STAT2 ; 清除CCF标志 , 16bit
MOVB #$80,ATD0STAT0 ; 清除转换结束标志
MOVB #$01,atd_flg
MOVB #$02,ATD0CTL2 ; 开中断
RTI
C语言ATD1SC,2020-10-13_ATD(模数转换)模块介绍相关推荐
- C语言习题(2020.10.31)
题目:假设有40个学生被邀请来给餐厅的饮食和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分)编程统计并按如下格式输出餐饮服务质量调查结果. #include <std ...
- Nginx-接入层Nginx架构及模块介绍
文章简介: 1)帮助大家对Nginx有一定的认识 2)熟悉Nginx有哪些应用场景 3)熟悉Nginx特点和架构模型以及相关流程 4)熟悉Nginx定制化开发的几种模块分类 文章相关视频讲解: C/C ...
- 解读Go语言的2020:变革前夜
本文转载自 InfoQ,作者 郝林 在作者去年年底撰写<解读 Go 语言的 2019>的时候,绝没有想到 2020 年将会如此的不平凡.全球范围内的疫情在大大地限制了人们和企业的对外活动之 ...
- 微生物组-宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)
福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...
- 宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)
福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...
- python平均工资-2020 10大薪资最高的IT编程语言排名
坊间流传一句俗语: 三百六十行,行行转IT. IT行业自2016年首次超过金融行业以后,一直到现在每年都是稳居高薪第1名的宝座. 本文盘点了2020 10大薪资最高的IT编程语言排名,看看是哪些编码技 ...
- 【不忘初心】Win10_20H2_2009_19042.572_X64_六合一_[纯净精简版](2020.10.29)
母版来自MSDN WIN10_20H2.19042.508,集成补到19041.572,20H2相比1909 2004版本要稳定很多,精简起来也比较顺手,相对来说体积比之前的要小一些,精简方法基本上 ...
- 用java语言实现2020年1月1号到2022年7月3号之间的间隔天数
用java语言实现2020年1月1号到2022年7月3号之间的间隔天数 1.思路 1.算出2020年1月1号到2021年12月31号之间的间隔天数sumYear 2.算出2022年1月1号到2022年 ...
- Go语言:谷歌google的uuid模块的基本用法
uuid是谷歌开发的生成16字节UUID的模块,实现了RFC4122:对UUID的v1,v2,v3,v4,v5等各个版本都有实现.一般来说,如果只是要生成唯一序列号的话,通常用v4版本,New()和N ...
- php上传图片到数据库2020,弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库
弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库 弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库 php连接数据库 连库基本操作 首先找到php.ini 文件中的 ...
最新文章
- 前端开发进阶手册.pdf
- python常用英语单词-3天教你掌握Python必备常用英语词汇
- 转载:SqlServer数据库性能优化详解
- 《深入理解计算机系统》读书笔记九:寄存器结构
- Linux系统下用python写程序,用Python写个Linux系统命令
- Consul入门02 - 运行Consul代理
- [转]SpringMVC+Hibernate+Spring 简单的一个整合实例
- 优化查询、访问量大时的优化
- ECCV 2020 Spotlight | 多标签长尾识别前沿进展
- 如何给 SAP Fiori Elements 应用的字段添加 value help
- ie6、7 下input的边框问题 ?
- 【转】EntityFramework之领域驱动设计实践(三)
- c# 全局钩子实现扫码枪获取信息。
- 编写一个简单的widget
- (私人收藏)配色宝典
- Linux下的好用的图片压缩软件
- 什么是探索性测试?探索性测试有哪些方法?
- 第6章 项目进度管理
- datax(二)datax on azkaban架构设计之datax as a service
- 苹果Mac远程控制软件:Screens
热门文章
- 合作分享还是独占独食?阿里健康、京东健康走出了两条不同的路
- 行为模型实例 php,JS中事件模型的实例详解
- 俄罗斯计算机科学留学,中南大学计算机科学与技术、俄罗斯硕士留学有没有寒暑假班?...
- vue写进html,vue中html页面写入$t(‘’)怎么显示
- java导出类_java导出excel工具类
- Python基础入门:正则re.sub使用自定义替换方法
- Python基础教程:列表推导式对比For循环执行效率
- Python:colorlog的三个例子
- python 类属性和对象属性--定义和作用域
- python 各层级目录下的import方法