[ MarkoBalkan @ 28.12.2007. 20:55 ] @
Code: #include <pic.h> #include <math.h> #include "delay.h" __CONFIG(XT&PROTECT&PWRTEN&WDTDIS); void main(void){ int i,j; PORTA=0; TRISB=0; TRISA=0; PORTB=0; GIE=0; while(2) { if(PORTB<128) { for(i=1;i<256;i) { DelayMs(1); PORTB=i; i=i*2; } } else { for(j=64;j>0;j) { DelayMs(1); PORTB=j; j=j/2; } } } } ovo je kod koji radi slijedeće: kod prve for petlje, pali i gasi pinove redom.pali 1, zatim, gasi 1, pali 2 itd... a ovaj dugi dio bi trebao raditi obrnzto. kad dođe do kraja ovaj ide prema naprijed.sa paljenjem i gašenjem.tj. prema prvom pinu. prvi dio radi odlično. problem nastaje u zadnjem redu j=j/2; kada dođe prvi puta do zadnjeg reda, nakon toga skoči u dissembly listing i tamo se zaglavi. radi se o hi-tech kompajleru. možda se tako ne smije pisati? |