با سلام
دوستان برنامه ای نوشتم که یک پورت از تراشه (D) یک ال ای دی فقط روشن خاموش میکنه و پورت C از تراشه یک حلقه بالا رونده هست حالا برنامه اینه نمی دونم فراخوانی تابع در برنامه اصلی درست هست یا خیر و یا باید در جای دیگر نوشت
نام تابع فرعی dis هست
اشکلات برنامه :::::: مدت زمان روشن و خاموش شدن ال ای دی از پورت D در مدت زمان حلقه بالا شمارنده تاثیر گذاشته
دوستان کسی هست راهماییی کنه؟؟؟؟؟؟؟؟؟؟؟؟؟//
#include <mega8.h>
#include <delay.h>
void dis ()
{
PORTD.1=1; delay_ms(500);
PORTD.1=0; delay_ms(500);
}
void main (void)
{
int e,f,g,h=0 ;
DDRD=0XFF;PORTD=0X00;
DDRC=0XFF; PORTC=0X00;
PORTD.0=1;\power on
while (1)
{
while(h==0)
{
for (e=0;e<=5;e++)
{
if(e==0)
{
for(g=0;g<=2;g++)
{
for(f=64;f>=1;f=f/2)
{
dis ();
PORTC=f;delay_ms(180);
}
}
}
if(e==1)
{
for(f=32;f>=1;f=f/2)
{
dis ();
PORTC=f;PORTC.5=1;delay_ms(180);
}
}
if(e==2)
{
for(f=16;f>=1;f=f/2)
{
dis ();
PORTC=f;PORTC.5=1;PORTC.4=1;delay_ms(180);
}
}
if(e==3)
{
for(f=8;f>=1;f=f/2)
{
dis ();
PORTC=f;PORTC.5=1;PORTC.4=1;PORTC.3=1;delay_ms(180 );
}
}
if(e==4)
{
for(f=4;f>=1;f=f/2)
{
dis ();
PORTC=f;PORTC.5=1;PORTC.4=1;PORTC.3=1;PORTC.2=1;de lay_ms(180);
}
}
if(e==5)
{
for(f=2;f>=1;f=f/2)
{
for(g=0;g<=2;g++)
{
dis ();
PORTC=f;PORTC=0XFF;delay_ms(200);
PORTC=0X00;delay_ms(200);
}
if(f==1)
{
h=0;
}
}
}
}
}
}
}