/*********************************************************************
目 的: 建立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 I2C(TWI)程序
下一篇:AVR AD转换 中断
推荐阅读最新更新时间:2024-11-10 19:13
设计资源 培训 开发板 精华推荐
- EVAL-AD7665CB,用于 AD7665、16 位、571Ksps PulSAR 模数转换器的评估板
- 使用 Analog Devices 的 LTC2487IDE 的参考设计
- 应用提示 7 使用 3V 低电流 LDO 稳压器
- DSO138mini示波器电源模块
- LTC3725,完整的 100W 高效率、低成本、最少部件数隔离式电信转换器
- LT1613CS5 演示板、1.4MHz、SOT-23 升压 DC-DC 转换器
- MC78M18BTG 18V可调输出稳压器的典型应用
- MPC574XG-MB: 面向MPC574xB/C/G系列的评估系统
- 用于便携式的 ±5V 模拟放大
- MCP1501T-10E/CHY 1.024V 负参考电压的典型应用电路