单片机:atmega16 平台: iccavr7 protues
代码1:#include<iom16V.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uint count;
void Delay_ms(uint xms);
/*********以下是延时函数*********/
void Delay_ms(uint xms)
{
int i,j;
for(i=0;i<xms;i++)
{ for(j=0;j<1140;j++){ ; }}
}
/********以下是端口初始化函数********/
void port_init(void)
{
PORTD&=(~(1<<PD4))|(~(1<<PD5));//PD4、PD5输出0
DDRD|=(1<<PD4)|(1<<PD5); //定时计数器的两个比较匹配输出端口PD4(OC1B)、PD5(OC1A)设置为输出口
}
/*********以下是主函数*********/
void main(void)
{
uchar i,j;
port_init();
while(1)
{
PORTD&=~BIT(PD5);
Delay_ms(1000);
// for(i=0;i<1000;i++)
// for(j=0;j<1140;j++) ;
PORTD|=BIT(PD5);
Delay_ms(1000);
// for(i=0;i<1000;i++)
// for(j=0;j<1140;j++) ;
}
}
代码2:
#include<iom16V.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uint count;
void Delay_ms(uint xms);
/*********以下是延时函数*********/
void Delay_ms(uint xms)
{
int i,j;
for(i=0;i<xms;i++)
{ for(j=0;j<1140;j++){ ; }}
}
/********以下是端口初始化函数********/
void port_init(void)
{
PORTD&=(~(1<<PD4))|(~(1<<PD5));//PD4、PD5输出0
DDRD|=(1<<PD4)|(1<<PD5); //定时计数器的两个比较匹配输出端口PD4(OC1B)、PD5(OC1A)设置为输出口
}
/*********以下是主函数*********/
void main(void)
{
uchar i,j;
port_init();
while(1)
{
PORTD&=~BIT(PD5);
// Delay_ms(1000);
for(i=0;i<1000;i++)
for(j=0;j<1140;j++) ;
PORTD|=BIT(PD5);
// Delay_ms(1000);
for(i=0;i<1000;i++)
for(j=0;j<1140;j++) ;
}
}
为什么代码2能够在protues中闪亮,代码1不得行。。。 |