AVR第9课:定时器1的CTC模式

操作定时器实际上就是在操作寄存器并配置参数。

<strong>#include<iom16v.h>
#include<macros.h>

void main()
{
 	 DDRD = DDRD|0x30;
	 TCCR1A = 0x50;
	 TCCR1B = 0x09;
	 OCR1A = 65535;
}</strong>

CTC模式下,相关的寄存器:TCCR1A、TCCR1B、OCR1A。相关的引脚是:PD4和PD5。当然你可以用示波器来检测某一引脚PD4或者PD5,就会看到方波。还有一个方法是,将周期调节到1秒,再将PD4链接到发光二极管,就可以看到发光二极管闪烁,有规律的闪烁。但是可惜看不到波形。f=fclk/(2*N*OCRnA)。N表示几分频,OCRnA表示它的最大值。

时间: 2025-01-18 11:02:20

AVR第9课:定时器1的CTC模式的相关文章

基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序

硬件设备   42步进电机,步进电机驱动器,正点原子F429开发板 开发软件    keil5,Cube 综述   一般要精准的控制电机,就要控制单片机的引脚输出指定个数的PWM波,有多种可实现的方法,其中最好用的方法是用定时器级联输出固定个数PWM脉冲,虽然多用了一个定时器,但大大减少了CPU的处理资源.STM32的每个定时器可以通过另外一个定时器的某一个条件被触发而启动.这里所谓某一个条件可以是定时到时.定时器超时.比较成功等许多条件.这种通过一个定时器触发另一个定时器的工作方式称为定时器的

AVR第3课:点亮发光二极管

和51单片机不同,51单片机的驱动能力比较弱,而AVR单片机的驱动能力比较强,可以直接驱动继电器和发光二极管,所以不需要外接上拉电阻.51单片机的引脚电流只有几十微安,而AVR单片机有40mA左右.电路图如下所示. 代码1:先让所有灯灭,延时一会儿,再让所有灯亮,再延时,这样一直循环. <span style="font-size:18px;">#include <iom16v.h> #include <macros.h> #define uchar

AVR第1课:准备阶段

如果你学过MCS-51单片机,那么你就可以学习AVR单片机了,从MCS-51过度到AVR比较好,如果直接跳过MCS-51而直接学AVR单片机的话,有点难度,而且那样的话不便于你对两种单片机的选择和分析. 学习方法:先学习理论知识,在理论知识里面你至少要了解到AVR单片机和MCS-51单片机的不同之处,并且了解他的基本使用方法,最好是能够学习好并掌握,因为有了MCS-51的底子,学习起来并没有那么困难:再学习做实验来检验我们学习的理论知识,当然是用C语言编程啦,用汇编的话效率太低了,当然你需要一块

AVR第8课:独立按键

值得注意的是,独立按键的检测原理和消抖处理在51单片机中已经讲过了,这些东西都不会变.只是AVR单片机的IO口操作方式改变了.在AVR中,检测方式是:首先让将和独立按键相连接的IO口设置成输出高电平,接着将他们设置成输入模式,再然后检测这些IO口的值.电路图如下所示. 代码1:检测是哪一个按键被按下.这里不需要用到消抖动处理. #include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar

AVR第2课:配置AVR开发环境

1.AVR单片机C语言编程开发环境:ICCAVR,用于编写程序和编译.下载地址:http://www.iccavr.com. 2.AVR单片机烧写程序环境:(我用的是USB ISP免驱动下载线,而且也是用的转换模块)PROGISP,网上可以下载,自己找.用这个软件的原因是之前我用AVR STDIO4总是出现Connected failed-Seclect AVR Program.最终才找到这个解决办法,希望遇到相同问题的你也可以用这个解决自己遇到的难题. 前一段时间到其他地方客串做了一些管理工作

AVR第6课:数码管显示

这一节我们将讲解数码管的使用,由于原理在学51单片机的时候已经学习过,在这里只需要利用前面学习的对AVR单片机的IO口操作方式就可以自己写练习题了. 下面的数码管是共阳极数码管. 代码:显示从0到9. /* *author:ChenLu *date:2014.11.20 */ //input the head file so that the program can work normally //iom16v---know the register //macros---know the BI

AVR第7课:动态数码管

以下是动态数码管的电路图. 代码:动态数码管. /* *author:ChenLu *date:2014.11.20 */ //input the head file so that the program can work normally //iom16v---know the register //macros---know the BIT(x) #include<iom16v.h> #include<macros.h> //use those can make your s

AVR第11课:如何对待我们的单片机

大家学习MCS51单片机和AVR单片机,又或者是PIC单片机,又或者是MSP430单片机之后,是否感觉自己可以成为一名工程师了呢?我在这里来说说我的看法吧. 我们学习这些单片机的时候,先学习了理论知识,这个一般是书本上的理论知识,比如介绍单片机的发展.单片机的应用领域.单片机的原理等等.然后呢找一块开发板,对着视频教程学习,边看视屏边做实验,学习完之后呢,去做那么一两个小项目,比如"基于LabView和PWM的霍尔测速和控速的直流电机系统",这个项目呢,相对来说综合要求能力比较高,如果

AVR第5课:蜂鸣器

下面是蜂鸣器的电路图. 代码:蜂鸣器代码. <span style="font-size:18px;">/* *info:buzzer *author:chenlu *date:2014.11.20 */ //input the head file so that the program can work normally //iom16v---know the register //macros---know the BIT(x) #include<iom16v.h