Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.348 pregleda

Najnovija ↓

Problem, pa trebam pomoć 28.12.2007. u 21:55 · pre 229 meseci #1
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?

Re: Problem, pa trebam pomoć 28.12.2007. u 22:24 · pre 229 meseci #2
Kada je portb=128 petlja nema uslov za if(portb<128)?
Potpis
__*__
*___*
Re: Problem, pa trebam pomoć 28.12.2007. u 22:44 · pre 229 meseci #3
sjebo se.hvala.


ali nije to na stvari.
sada sam probao ovako i opet ode u assembling listing i vrti se u beskonačnoj petlji.
problem je kod ovog dijeljenja .

Code:


#include <pic.h>
#include <math.h>
#include "delay.h"

__CONFIG(XT&PROTECT&PWRTEN&WDTDIS);

void main(void){
        int i,j,k;
        PORTA=0;
        TRISB=0;
        TRISA=0;    
        PORTB=128;
        GIE=0;
while(1)
    {

    
    
    
        
        for(j=128;j>0;j)    
            {
                DelayMs(1);
                PORTB=j;
            
                j=j/2;    
            }    
    }
    
}
Re: Problem, pa trebam pomoć 28.12.2007. u 23:20 · pre 229 meseci
izmenjeno 1 put, poslednji put MarkoBalkan 28.12.2007. u 23:43
  1. MarkoBalkan28.12.2007. u 23:43zapis iz teksta poruke
#5
128=10000000
255=11111111

množenje radi i u prvom programu prva petlja radi ok.
problem je kod dijeljenja.
Re: Problem, pa trebam pomoć 29.12.2007. u 01:26 · pre 229 meseci #6
Pozdrav,

umesto j = j/2 napisi j >>= 1
i umesto int i,j,k napisi unsigned int i,j,k
pa javi sta se dogadja
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme