Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem, pa trebam pomoć

[es] :: Elektronika :: Mikrokontroleri :: Problem, pa trebam pomoć

[ Pregleda: 2484 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Problem, pa trebam pomoć28.12.2007. u 20:55 - pre 171 meseci
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?

 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
*.dialup.neobee.net.



+10 Profil

icon Re: Problem, pa trebam pomoć28.12.2007. u 21:24 - pre 171 meseci
Kada je portb=128 petlja nema uslov za if(portb<128)?
__*__
*___*
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Problem, pa trebam pomoć28.12.2007. u 21:44 - pre 171 meseci
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;    
            }    
    }
    
}
 
Odgovor na temu

tomam
Tomislav Milicevic
Beograd

Član broj: 104895
Poruke: 157
*.eunet.yu.



+4 Profil

icon Re: Problem, pa trebam pomoć28.12.2007. u 22:16 - pre 171 meseci
Napisi binarno 256 i 128 ?
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Problem, pa trebam pomoć28.12.2007. u 22:20 - pre 171 meseci
128=10000000
255=11111111

množenje radi i u prvom programu prva petlja radi ok.
problem je kod dijeljenja.


[Ovu poruku je menjao MarkoBalkan dana 28.12.2007. u 23:43 GMT+1]
 
Odgovor na temu

obranko
severna amerika

Član broj: 36599
Poruke: 152
*.cpe.net.cable.rogers.com.



+1 Profil

icon Re: Problem, pa trebam pomoć29.12.2007. u 00:26 - pre 171 meseci
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
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Problem, pa trebam pomoć29.12.2007. u 10:29 - pre 171 meseci
puno hvala.
radi.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Problem, pa trebam pomoć

[ Pregleda: 2484 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.