PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : لطفا اساتید گرامی به این کد یه نگاهی بندازید و بگید دقیقا چی کار می کنه بی نهایت ممنون



net_ehub
May 24th, 2013, 00:42
این کد در مورد تابلو روان هست که می خوام به زبان ساده و در چند خط عزیزان لطف کنن بگن دقیقا چی کار می کنه

#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,5 6,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);
}}

اولین سوالم این هست که این عبارت چی کار میکنه


flash unsigned char


سوال بعدیم این هست که چرا حلقه به این صورت نوشته شده


code=108;code>8;code--


یعنی از 108 چرا شروع میشه
سوال بعدیم این هست که این


loop=0;loop<16;loop++


loop چه کار می کنه اینجا
و نهایتا اینکه این کد چی کار می کنه


PORTA=text_micro[abs(code-loop)];


بی نهایت ممنونم

ADMlN
May 24th, 2013, 00:53
سوال در جای اشتباهی مطرح کردید

به سایت وب سایت تخصصی برق و الکترونیک ECA (http://eca.ir) بروید تا به سرعت جواب خودتون بگیرید