以前小看了定时器,发现这东西还真的很讲究,那先复习复习吧. 先提提中断:我的理解就是cpu执行时,遇到中断——根据对应的中断源(硬件或软件)——pc定位中断入口地址,然后根据这里的函数指针——跳转到相应的服务程序 之所以上面()了硬件或软件,这里还涉及到向量中断和非向量中断:区别就在于确定中断源,如果是硬件编码了中断源的,直接跳转相应的服务函数则是向量中断.而非向量中断指的是:如果发生中断了,但此时还不清楚是那个中断,需要查找标志位来确定跳转到那个中断区域. 可以发现向量中断肯定来的快些,这里为…
本文隶属于AVR单片机教程系列.   中断,是单片机的精华. 中断基础 当一个事件发生时,CPU会停止当前执行的代码,转而处理这个事件,这就是一个中断.触发中断的事件成为中断源,处理事件的函数称为中断服务程序(ISR). 中断在单片机开发中有着举足轻重的地位--没有中断,很多功能就无法实现.比如,在程序干别的事时接受UART总线上的输入,而uart_scan_char等函数只会接收调用该函数后的输入,先前的则会被忽略.利用中断,我们可以在每次接受到一个字节输入时把数据存放到缓冲区中,程序可以从缓…
目录 合宙AIR105(一): Keil MDK开发环境, DAP-Link 烧录和调试 合宙AIR105(二): 时钟设置和延迟函数 合宙AIR105(三): 定时器, 定时器中断和PWM输出 Air105 的 Timer 定时器 1 个 Timer 单元,包含 8 个独立定时器: Timer0 - Time7 8 个定时器中断源独立,每个定时器单独占 1 个中断源 使用 PCLK 时钟频率作为定时器计时钟源 定时器采用向下计数方式 定时器的两种运行模式 user-defined: 定时器计数…
不管是什么单片机程序,中断总是非常重要的一部分 ,linux 下的avr开发,主要是依靠avr-gcc,以及avr-libc,它们对中断程序的格式要求,与window下的icc-avr以及win-avr有所差异,这里对linux下中断服务程序编写做个简要介绍. 个人原创,转载请注明出处:http://blog.csdn.net/embbnux/article/details/12448053 首先是要引入的库: #include <avr/io.h> #include <avr/inte…
控制步进电机可以使用PWM.定时器中断.延时,这里用的就是定时器中断来让它转动. 一.硬件部分1.使用的硬件板子用的是正点原子的STM32F103 mini板,驱动器是DM420(DM420驱动器资料),用开关电源供电,电机就是普通的42步进电机,步距角为1.8°,虽然按照图片来看它是个蠕动泵.如下图 2.硬件连接PUL+--PB0,脉冲输入DIR+--PB1,方向使能ENA+--PB2,脱机使能,共阴极接法的话,输入低电平,让它无效.这里连接驱动器采用共阴极接法,如图 3.总硬件连接图 二.控…
#include <reg51.h> #define uint unsigned int #define uchar unsigned char sfr P0M0 = 0x94; sfr P0M1 = 0x93; sfr P2M0 = 0x96; sfr P2M1 = 0x95; uint count,i,j; uchar code leddata[] = { 0xC0, //"0" 0xF9, //"1" 0xA4, //"2" 0…
BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序…
我有幸接触了几款单片机,并用它们做了一些项目.现在想做个小总结,谈一下自己用各种单片机的感受.仅是个人意见,仁者见仁智者见智. 传统51,我想我就不多说了,适合菜鸟入门,容易上手,价格一般(从性价比方面说). 缺点:解密容易(传统51说:谁让咱出道早呢,大家都研究我,哎!哭......)一般功能也有,, 但AD.eeprom等功能要靠扩展,增加硬件和软件负担. IDE环境推荐 keil.编程器自己自制ISP下载线就行,好做,成本5元左右. PIC:我就是学这款单片机入门的,pic的好处就是各个型…
本文隶属于AVR单片机教程系列.   第一期挺让我失望的,是我太菜,没有把想讲的都讲出来.经常写了很多,然后一点一点删掉,最后就没多少了. 而且感觉难度不合适,处于很尴尬的位置.讲得简单,难的丢给库,库源码也不公开.作业题倒是难得一批,我自己都差点不会做. 以前看不起那些死讲知识点的书,现在明白,把知识点写活太难了.尤其是单片机这边,知识点本来就杂,难以组织. 本来想后面慢慢讲电路.总线.中断等的,但一觉得太累,二觉得讲不好,于是就改了计划. 目前暂定第二期有6讲: 定时器中断:中断基础.定时器…
本文隶属于AVR单片机教程系列.   在第一期中,我们已经开始使用UART来实现单片机开发板与计算机之间的通信,但只是简单地讲了讲一些概念和库函数的使用.在这一篇教程中,我们将从硬件与软件等各方面更深入地了解UART. USART组件 一直在讲的UART其实是USART组件的一部分,USART比UART多了同步的一部分,但这一部分用得太少(我从来没用过),而且缺乏实例,所以就略过了.然而,单片机的设计者很机智地把这个鸡肋功能升华了一下,USART组件可以支持SPI模式.SPI是一种同步串行总线,…