|
/*************************************
文件名:LED Driver
编译环境:ICC AVR6.25A
仿真软件;AVR studio4.10
硬件:ATMEGA128芯片
描述:PORTD高低4位交替置高
*************************************/
#include<iom128v.h> //包含型号的头文件
#include<macros.h> //包含位操作的头文件
/*******数据类型宏定义*******/
#define uint unsigned int
/*******声明延时(毫秒级)函数*******/
void delayms(uint ms);
/*******主函数*******/
void main(){
DDRD=0XFF;//定义PD口为输出方式
while(1)
{
PORTD=0X0F;
delayms(500);
PORTD=0XF0;
delayms(500);
}
}
/********************
函数名称:delayms
功能描述:用于延时特定的毫秒
参数:ms
返回值:无
说明:震荡产生于片内1MHZ的RC震荡电路
********************/
void delayms(uint ms)
{
uint i,j;
for(i=0;i<ms;i++){
for(j=0;j<145;j++);}
}
////////////////////
下到板子执行时,PD口始终保持0X0F状态,
这是为什么呢??
但假如不用调用子函数的方式,直接把延时程序加到主函数里就可以正常执行,
这又是为什么呢?? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|