AVR 硬件操作库函数

发布者:size0109最新更新时间:2020-06-30 来源: eefocus关键字:AVR  硬件操作  库函数 手机看文章 扫描二维码
随时随地手机看文章

/*********************************************************************     

目    的:   建立AVR的硬件提取库,增加各类补丁,方便系统程序移植

目标系统:   基于AVR单片机                                                 

应用软件:   ICCAVR                                                      

版    本:   Version 1.0                                                       

*********************************************************************/


/*01010101010101010101010101010101010101010101010101010101010101010101

----------------------------------------------------------------------

版本更新记录:


----------------------------------------------------------------------

入口参数说明:


----------------------------------------------------------------------

待定参数说明:


---------------------------------------------------------------------- 

对外变量说明:


----------------------------------------------------------------------

对外程序说明:


----------------------------------------------------------------------

10101010101010101010101010101010101010101010101010101010101010101010*/


#ifndef Hardware_H

#define Hardware_H


#include

#include

#include

#include

#include

//#include


/* TWI configs */

//如使用ATMEGA162(没有TWI接口)之类的MCU,在加载Hardware.H前,务必加“#define NO_INCLUDE_I2C_H 1”语句

#if NO_INCLUDE_I2C_H

;

#else

#include "D:ICC_HI2C.H" //i2c即AVR的"twi"

#endif


/* hard configs */

#ifndef flash

#define flash const

#endif


#ifndef code

#define code const

#endif


#ifndef NOP

#define NOP() asm("nop")

#endif


/* io configs */

#define sbi(io,bit) ( io |= (1<#define cbi(io,bit) ( io &= ~(1<#define gbi(pin ,bit) ( pin & (1<


/* interrupt configs */

#define DIS_INT asm("sei")

#define EN_INT asm("cli")


/* wdt configs */

#define WDT() asm("wdr")


/* bit operation */

//#ifndef BIT

//#define BIT(x) ( 1<<(x) )

//#endif


/* USART configs for 4 Mhz crystal */

//#define BAUD9600 25

//#define BAUD19000 12

//#define UART_TRAN_ON() UCR |= 0x08

//#define UART_TRAN_OFF() UCR &= ~0x08

//#define UART_RCV_ON() UCR |= 0x10

//#define UART_RCV_OFF() UCR &= ~0x10


/*--------------------------------------------------------------------

程序全称:50us 延时程序

程序功能:就是 50us延时

注意事项:基于7.3728M晶振,稍微有点误差

提示说明:调用delay50us(20),得到1ms延时

输 入: 

返 回:无 

--------------------------------------------------------------------*/

void delay50us(sint16 t)

{

uint8 j; 

for(;t>0;t--) 

for(j=0;j<70;j++) 

;

}

/*--------------------------------------------------------------------

程序全称:50ms 延时程序

程序功能:就是 50ms延时

注意事项:基于7.3728M晶振,稍微有点误差

提示说明:调用delay50ms(20),得到1s延时 

输 入:

返 回:无

--------------------------------------------------------------------*/

void delay50ms(sint16 t)

{

uint16 i; 

for(;t>0;t--)

for(i=0;i<52642;i++)

}


#endif


关键字:AVR  硬件操作  库函数 引用地址:AVR 硬件操作库函数

上一篇:AVR I2C(TWI)程序
下一篇:AVR AD转换 中断

推荐阅读最新更新时间:2024-11-10 19:13

STM32 LED跑马灯-库函数
一,GPIO知识回顾 1,四种输入模式: 输入浮空 输入上拉 输入下拉 模拟输入 2,四种输出模式: 开漏输出 开漏复用输出 推挽输出 推挽复用输出 3,三种最大输出速度 2MHz 10MHz 50MHz 每组GPIO共16个IO口,含下7个寄存器 GPIOx_CRL : 端口配置低寄存器 GPIOx_CRH : 端口配置高寄存器 GPIOx_IDR : 端口输入寄存器 GPIOx_ODR : 端口输出寄存器 GPIOx_BSRR : 端口位设置/清除寄存器 GPIOx_BRR : 端口位清除寄存器 GPIOx_LCKR : 端口配置锁存寄存器 二,LED硬件连接
[单片机]
STM32 LED跑马灯-<font color='red'>库函数</font>
IAR For AVR 精确延时
C语言中,想使用精确的延时程序并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。 实现的方法: 建立一个delay.h的头文件: #ifndef __IAR_DELAY_H #define __IAR_DELAY_H #include intrinsics.h #define XTAL 8 //可定义为你所用的晶振频率(单位Mhz) #define delay_us(x) __delay_cycles ( (unsigned long)(x *
[单片机]
串口接收的思路
在avr论坛上看到的 关于串口接收的方法 对项目有点帮助就记录下了 感谢网友 AVRBBS 提供的方法 static unsigned char i;//定义一个静态变量,用于记录接收到那一个字节了。 switch (i) { case:0 if (udr == 0xAA) //收到第一个数据,判断是否为0XAA启动字节。 i = i + 1; //同步成功,增加变量 i ,进入下一步操作。 break; case:1 在这一步取第符长度,并把它保存在你定义的接收数组里面,在后面接收数据的时候用的到。 case:2 接收命令字节,存入到数组里面。 。。。。。。。上面是大概流程,供你参考
[单片机]
Atmel 90系列AVR单片机烧录器
AVRPRO烧录器,是针对ATMEL公司的90系列AVR精简指令单片机设计的专用烧录工具该产品只有软件部分,无需硬件支持,仅仅只需4根线,将计算机并口和用户板相连,这都是因为采用了ISP串行编程。软件支持擦、写、校验、写保护位以及批处理。使用极其方便。 该产品的最大优点有: 1.使用串行编程,达到了在线编程,节省了购买万用编程器和适配器的费用(万用编程器需2千元左右,适配器需3、4百元,并各个芯片和封装需不同适配器)。用户板也无需在焊插座(带来可靠性下降),而且为软件升级带来了极大的便利。 2.使用方便,无需硬件,给现场调试带来了极大的便利,不用再带笨重的编程器,而且为AVR单片机的使用上带来了方便。 3.价格实在太便
[单片机]
基于STM32的三种库函数代码效率对比解析
前言 ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从最早的标准外设驱动库,到后来的Cube HAL,再到Cube LL以及直接操作寄存器。这几种库的代码效率到底如何呢?本文将针对这个问题进行粗略分析,并提供对比数据供大家参考。 问题分析 我们以GPIO翻转、TIM PWM 输出、ADCDMA 数据采集和DMA M2M这四个常用功能,通过不同的库函数来实现相同功能,最终来对比各个库函数的性能。四个工程代码的内容简述如下: GPIO翻转:切换GPIO的输出电平,其中包含了系统时钟初始化和GPIO翻转的代码。TIM PWM输出:通过TIM1 的通道1输出频率是36KHz的PWM,循环修改其占空比从25%到50%
[单片机]
基于STM32的三种<font color='red'>库函数</font>代码效率对比解析
AVR单片机学习按键与数码管的程序设计
简介:按键与数码管的程序设计 AVR IO口的输入模式与上拉电阻 选择结构语句与按键的查询方式程序设计 数码管基本原理 扫描方式显示多位数码管 一、输入状态IO寄存器设置 1、DDRx 某一位置0,相应位的IO口被设置为输入 2、PORTx某一位置1,使能对应IO口相应位的上拉电阻 3、PINx的对应位是输入的数据,0或1 选择结构语句 一、关系运算符和关系表达式 小于 小于等于 = 大于 大于或等于== 不等于!= 二、逻辑运算符和逻辑表达式 逻辑与&&逻辑或||逻辑非! 三、if 语句结构 if(表达式1)语句1 else if(表达式2)语句2 else 语句3 四
[单片机]
<font color='red'>AVR</font>单片机学习按键与数码管的程序设计
AVR单片机实现智能插座节能的设计
0 引言 计算机外部设备(如打印机、扫描仪、音响等)的待机能耗不但增加了消费者的日常电费开支,也使电力资源浪费极大。该设计的计算机智能节能插座利用主机的开机和关机来带动其他设备的开或关,使其接口设备待机能耗为零,能够减少计算机及其外设所产生的辐射,以此达到节能和环保功效;同时还具备有分段定时开关的功能。该智能插座也可以通过功能转换作为普通插座使用,不影响其他设备的使用。 1 智能插座的设计 1.1 智能插座的硬件结构 计算机智能节能插座的硬件结构图如图1所示。该控制器以AVRmega 48为控制核心,外围电路主要由电流采样电路、模/数转换参考电压电路、状态显示电路、键盘输入电路和实时时钟构成。电流采样电路用于检测计算机的运行状
[单片机]
<font color='red'>AVR</font>单片机实现智能插座节能的设计
基于AVR及MTURTU的无线电遥测系统设计
一、引言 基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。 二、设计思想 原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使系统其他所有电台无法通信,整个系统瘫
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved