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;
}
}
}
}
#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?