ATmega128(ICC7.22 "delay.h")

发布者:幸福的老农最新更新时间:2016-09-29 来源: eefocus关键字:ATmega128  ICC7.22 手机看文章 扫描二维码
随时随地手机看文章
//********************************************************************

/*函 数 名:delay_us
编译环境:ICCAVR7.16A
函数作用:微秒级的延时程序
说    明:7.3728M晶振下
********************************************************************/
void delay_1us(void);
void delay_3us(void);
void delay_10us(void);
void delay_50us(void);
void delay_100us(void);
void delay_n100us(unsigned char n100us);
void delay_1ms(void);
void delay_nms(unsigned int nms);
void delay_ns(unsigned char ns);


void delay_1us(void)                 //1us延时函数,不能连续调用, 

   asm("nop");                       //1时钟周期
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");                       //1T
   asm("nop");

}
void delay_3us(void)                 //3us延时函数,,可重复调用不影响精度

   
   asm("nop");
   asm("nop");
   asm("nop");                       
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");                       
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");                       
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");                       
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");                       
}

void delay_10us(void)                 //10us延时函数,,可重复调用不影响精度
{
   delay_3us();
   delay_3us(); 
   delay_3us();  
}
  
void delay_50us(void)                 //48us延时函数,,可重复调用不影响精度

   delay_10us();
   delay_10us(); 
   delay_10us();
   delay_10us();
}
void delay_100us(void)     //exactly 98us延时函数,,可重复调用不影响精度
{
 delay_50us();
 delay_50us();
}
void delay_n100us(unsigned char n100us)
{
 while(n100us--)                          
 delay_100us();
}
/*delay_n100us(2)        250us
delay_n100us(3)          360us
delay_n100us(4)          470us
delay_n100us(5)          580us
delay_n100us(6)          690us
delay_n100us(7)       800us
delay_n100us(8)          900us              主要是由于函数声明及while,,,大概6us

*/
void delay_1ms()
{
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
 delay_100us();
}
/********************************************************************
函 数 名:Delay_ms
建立日期:2010年1月28日
修改日期:
函数作用:毫秒级的精确延时程序
说    明:
********************************************************************/
void delay_nms(unsigned int nms)
{
 while(nms--) 
 delay_1ms();
}
void delay_ns(unsigned char ns)
{
 while(ns--) 
 delay_nms(1000);
}

关键字:ATmega128  ICC7.22 引用地址:ATmega128(ICC7.22 "delay.h")

上一篇:ATmega128(DS1302)
下一篇:建立一个AVR单片机RTOS(8)—占先式内核(完善的服务)

推荐阅读最新更新时间:2024-03-16 15:12

基于ATmega128单片机的智能蒸柜控制系统设计
智能蒸柜控制系统是一个蒸柜控制系统的改造与优化,之前采用的控制单元部件为西门子S5系列PLC和MP370触摸屏。S5系列模块已经停产,触摸屏操作也由于使用时间过长出现不灵敏现象,现使用的PLC模块与s5系列模块存在不兼容现象,并且PLC控制成本较高,故决定采用基于AVR单片机实现系统的节能优化。 1 系统简介 本次设计采用Atmel公司的AVR系列ATmega128单片,由于此单片机吸收了PLC及51单片机的优点,同PLC一样可以重设和复位;特别是AT mega128单片机具有128 KB FLASH,4 KB E2PROM,4 KB RAM,多达48个I/O,口,34个中断源,以及ISP下载及JTAG仿真口。CS5464
[单片机]
基于<font color='red'>ATmega128</font>单片机的智能蒸柜控制系统设计
ATmega128开发板转为Arduino
AVR环境: 编译环境: ubuntu + avr-gcc 烧写工具: avrdude+usbasp 具体构建步骤查看上一篇博客。 avr环境多种多样,在linux下还可以用eclipse集成环境。在window下推荐用WINAVR,其实本质上和linux下一样是用avr-gcc,烧写工具用prgisp.当然有了avr jtag仿真器就更好了,不用usbasp. 下载arduino工具: arduino.cc/en/Main/Software 我下载的linux 64位版本,下载后解压到主目录下。 开发板: BK-AVR128开发板 一、制作属于atmega128的bootloader
[单片机]
把<font color='red'>ATmega128</font>开发板转为Arduino
ATmega128 内核介绍
本节从总体上讨论AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必 须能够访问存储器,执行运算,控制外设以及处理中断。 为了得到最大程度的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程 序总线。程序存储器的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一 条指令( 在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器为可以 在线编程的FLASH。 快速访问寄存器文件包括32个8位通用工作寄存器,而且都可以在一个时钟周期内访问。 从而实现单时钟周期的ALU 操作。在典型的ALU 操作过程中,两个位于寄存器文件中的 操作数同时被访问,然后执行相应的运算,结果
[单片机]
<font color='red'>ATmega128</font> 内核介绍
ATmega128和组态王实现陶瓷检测系统
  针对国内的陶瓷性能检测仪自动化程度不高、检测精度低、检测范围比较窄,可视化差等情况,设计开发了一种基于AVR ATmega128单片机和北京亚控公司的组态软件的 陶瓷检测 实时控制系统。该系统运用虚拟仪器组态王作为上位机,辅以ATmega128单片机为核心的变参数的模糊神经网络PID控制器,对陶瓷性能进行检测。经现场使用表明,该系统检测精度高、范围广、可视化程度高,使用方便。   引言   研制高性能生态陶瓷性能检测仪具有重要的现实意义。本文以陶瓷材料的综合性能为研究对象,进行陶瓷透气度性能检测仪的研制。为了实现智能化和可视化,采用数据吞吐率高的ATmega128单片机作为系统的主控制芯片,用北京亚控公司的可视化高的组
[单片机]
<font color='red'>ATmega128</font>和组态王实现陶瓷检测系统
ATMEGA128单片机定时器+数码管显示
#define SS 0 #define SCK 1 #define MOSI 2 #define MISO 3 #define SS_H() PORTB|=(1 SS) #define SS_L() PORTB&=~(1 SS) //注意,不要漏掉了() #define led0_en() {DDRB|=1 4;PORTB|=(1 4);} //开第一个数码管的位选 #define led0_dis() {DDRB|=1 4;PORTB&=~(1 4);} //关第一个数码管的位选 #define led1_en() {DDRB|=1 5;PORTB|=(1 5);} #define led1_dis() {DDRB|=1 5;
[单片机]
Atmega128单片机控制的智能小车设计
第1章 绪论1.1 选题背景和意义 自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。其中智能小车可以作为机器人的典型代表。其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大部分:传感器检测部分,执行部分,CPU。现智能小车发展很快,从智能玩具
[单片机]
<font color='red'>Atmega128</font>单片机控制的智能小车设计
ATmega128(lcd1602)
//Atmega128的1602型LCD显示驱动程序 //编译环境 AVR Studio 4.17/AVR GCC //系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms //*********************************************************************** // 包含文件 //*********************************************************************** #include string.h #include stdio.h #define F_CPU 7372800 /
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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