لطفا اساتید گرامی به این کد یه نگاهی بندازید و بگید دقیقا چی کار می کنه بی نهایت ممنون
این کد در مورد تابلو روان هست که می خوام به زبان ساده و در چند خط عزیزان لطف کنن بگن دقیقا چی کار می کنه
کد:
#include <mega16.h>
#include <delay.h>
#include <math.h>
flash unsigned char text_micro[]={
0,0,0,0,0,0,0,0,0,0,0,128,224,120,46,39,
46,120,224,128,63,127,192,192,127,63,0,254,255,51,51,127,
238,128,0,0,0,120,192,192,220,118,6,0,31,63,48,48,
60,54,58,156,192,112,48,31,159,192,120,50,50,24,48,50,
24,48,55,55,53,29,129,129,220,116,60,128,192,120,56,48,55,
55,53,29,177,177,56,16,48,56,40,56,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0};
void main(){
signed int loop,refresh,code;
PORTA=0x00;
DDRA=0xFF;
PORTC=0x00;
DDRC=0xFF;
DDRD=0xFF;
while(1){
for(code=108;code>8;code--){
for(refresh=0;refresh<8;refresh++){
for(loop=0;loop<16;loop++){
if(loop<8){
if(loop==0) PORTC.7=0;
else if(loop==1) PORTC.6=0;
else if(loop==2) PORTC.5=0;
else if(loop==3) PORTC.4=0;
else if(loop==4) PORTC.3=0;
else if(loop==5) PORTC.2=0;
else if(loop==6) PORTC.1=0;
else if(loop==7) PORTC.0=0;
}
if(loop>7){
if(loop==8) PORTD.7=0;
else if(loop==9) PORTD.6=0;
else if(loop==10) PORTD.5=0;
else if(loop==11) PORTD.4=0;
else if(loop==12) PORTD.3=0;
else if(loop==13) PORTD.2=0;
else if(loop==14) PORTD.1=0;
else if(loop==15) PORTD.0=0;
}
PORTA=text_micro[abs(code-loop)];
delay_us(250);
PORTA=0X00;
PORTC=PORTD=0xFF;
}
}
}
PORTA=0X00;
delay_ms(500);
}}
اولین سوالم این هست که این عبارت چی کار میکنه
سوال بعدیم این هست که چرا حلقه به این صورت نوشته شده
کد:
code=108;code>8;code--
یعنی از 108 چرا شروع میشه
سوال بعدیم این هست که این
کد:
loop=0;loop<16;loop++
loop چه کار می کنه اینجا
و نهایتا اینکه این کد چی کار می کنه
کد:
PORTA=text_micro[abs(code-loop)];
بی نهایت ممنونم
پاسخ : لطفا اساتید گرامی به این کد یه نگاهی بندازید و بگید دقیقا چی کار می کنه بی نهایت ممنون
سوال در جای اشتباهی مطرح کردید
به سایت وب سایت تخصصی برق و الکترونیک ECA بروید تا به سرعت جواب خودتون بگیرید