Arduino寄存器(模拟比较器)

ATMEGA328P拥有一个模拟比较器
网上资料非常少,官方也没有可以使用的库,但是芯片手册上有其使用的说明,现总结一下其使用方法。
理解其使用方法后,可以自己编写一个库,在这里只讲解通过寄存器使用模拟比较器的方法。

1. 比较器正负输入

  1. 比较器正输入只有一个引脚AIN0,就是6号引脚;当然还可以使用内部基准电压源
  2. 比较器的负输入可以有多个引脚,AIN2(7号引脚)、ADC0、ADC1、ADC2······

在这里插入图片描述

2. ADCSRB

在这里插入图片描述
这个寄存器中只有第6位对比较器有用
结合上图

  1. 当ACME为0时AIN1为负输入
  2. 当ACME为1,且ADEN为0时可以选择ADC相关引脚为负输入

3. ADCSRA

在这里插入图片描述
这个寄存器主要是控制ADC采样方面的,其中第7位ADEN可以用来控制模拟比较器
当写入1使能ADC,写入0关闭ADC。

4. ADMUX

在这里插入图片描述
这个也是主要来控制ADC采样的,但在ACME置1、ADEN为0时,可以控制ADC引脚作为比较器的负输入。

以上即解释第一张图中所使用的寄存器


5. ACSR(模拟比较器控制与状态寄存器)

在这里插入图片描述

  1. ACD:写入1时,关闭比较器电源;但是当要更改ACD时,先将ACIE置0,否则将会触发比较器中断
  2. ACBG:控制比较器正输入;当为1时,使用内部基准电压作为正输入;当为0时,使用AIN0为模拟比较器正输入
  3. ACO:模拟比较器输出,会有1~2个时钟周期延迟
  4. ACI:这个东西没太搞懂有什么用······
  5. ACIE:使能模拟比较器中断(并且状态寄存器的I位被置1,稍后再说)
  6. ACIC:此位涉及到定时器,会有输入捕捉等功能,还没用到,以后补充。
  7. ACIS1、ACIS0:设置模拟比较器中断模式
ACIS1 ACIS0 模式
0 0 输出触发时比较器中断
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值