AVR atmega16l 定时器2的计数功能

AVR atmega16l 定时器2的计数功能,第1张

你还是用它的比较匹配功能吧

不知道你要怎么计数

对脉冲计数还是什么

举例说的话 如果你在小车的轮子上加一些白黑条纹 那么就可以用中断计数

一次电平改变变量自增1

这样普通的io引脚就可以实现

定时器2好像是没有计数功能的

ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与运算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。

ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。

工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。

本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW *** 作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。

ATmega16 具有一整套的编程与系统开发工具,包括:C 语言 编译器、宏汇编、 程序调试器/ 软件仿真器、仿真器及评估板。 u 高性能、低功耗的8位AVR微处理器

l 先进的RISC 结构

l 131条指令

l 大多数指令执行时间为单个时钟周期

l 32个8位通用工作寄存器

l 全静态工作

l 工作于16MHz时性能高达16MIPS

l 只需两个时钟周期的硬件乘法器

l 非易失性程序和数据存储器

l 16K 字节的系统内可编程Flash,擦写寿命: 10,000次

l 具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写 *** 作

l 512 字节的EEPROM,擦写寿命: 100,000次

l 1K字节的片内SRAM

l 可以对锁定位进行编程以实现用户程序的加密

l JTAG 接口( 与IEEE 11491 标准兼容)

l 符合JTAG 标准的边界扫描功能

l 支持扩展的片内调试功能

l 通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程 u 两个具有独立预分频器和比较器功能的8位定时器/计数器

l 一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器

l 具有独立振荡器的实时计数器RTC

l 四通道PWM

l 8路10位ADC,8个单端通道,2个具有可编程增益(1x, 10x, 或200x)的差分通道

l 面向字节的两线接口

l 两个可编程的串行USART

l 可工作于主机/ 从机模式的SPI 串行接口

l 具有独立片内振荡器的可编程看门狗定时器

l 片内模拟比较器

u 特殊的处理器特点

l 上电复位以及可编程的掉电检测

l 片内经过标定的RC振荡器

l 片内/片外中断源

l 6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby模式u I/O和封装

l 32个可编程的I/O口

l 40引脚PDIP封装, 44引脚TQFP封装, 与44引脚MLF封装 :

l ATmega16L:27 - 55V

l ATmega16:45 - 55V l 8MHz ATmega16L

l 0-16MHz ATmega16

u ATmega16L在1MHz, 3V, 25°C时的功耗

l 正常模式: 11 mA

l 空闲模式: 035 mA

l 掉电模式: < 1 μA

最近刚好在弄这个,不过我用的是IAR FOR AVR,不过大同小异。

我用的是MCU省电模式,具体寄存器MCUCR配置是多少我忘记了,你查手册,里面有写。

我用的是独立的异步时钟来唤醒的,就是我配置了定时器2,异步模式。

1、在程序初始化的时候,设置好定时器2,唤醒时间自己设,反正是一旦溢出就会唤醒MCU。

2、写好你要工作的代码,用汇编指令SLEEP继续进入掉电模式,如果是C的话,可以混合编程:

asm( "sleep");

以上就是关于AVR atmega16l 定时器2的计数功能全部的内容,包括:AVR atmega16l 定时器2的计数功能、Atmega16的Atmega16介绍、用avr studio编译器怎么编写ATmega16睡眠模式 包括头文件 以及具体过程 谢谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9777009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存