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

MplabX i XC8 moja greska ili bug

[es] :: Elektronika :: Mikrokontroleri :: MplabX i XC8 moja greska ili bug

[ Pregleda: 1962 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Risto.
Risto Pejasinovic
Crvena Crkva

Član broj: 192157
Poruke: 81
62.240.22.*



+10 Profil

icon MplabX i XC8 moja greska ili bug11.06.2014. u 20:23 - pre 119 meseci
Imam problem sa mplab-om, vec dva dana se mucim.

Pravim generator funkcija sa ad9850.
I sve sam lepo ja napisao softver, sa displejem i biranjem frekvencije.
I modul izbacuje lepo sinus na svim frekvencijama osim, na opsegu izmedju 30kHz i 100kHz.

E sad ja sam mislio da je do mog koda, menjao sam sve zivo, ali na kraju nista.
Kada upisem u svoju funkciju za slanje frekvencije 50000 sve lepo radi.
Ali kad napisem 5 * 10000, ili 50 * 1000, ili neku drugu vrednost u problematicnom opsegu, kompajler skroz pobrljavi i izbacuje nesto bezveze.

Otkrio sam da nije do mog programa tako sto sam napisao jednostavan program:

unsigned long proba = 5 * 10000;

u debaggeru mi izbacuje 4294951760.

unsigned long - moram da koristim zbog duzine broja koji saljem, Ali primetio sam da kad posaljem, isto ovo u unsigned int dobijem dobar rezultat, ali je problem sto int nije dugacak dovoljno

Isto to od gore sam probao i u mikroc-u, i sa njim funkcionise.

Nemam pojma sta se desava. Mozda ja nisam nesto dobro podesio posto tek od pre neki dan koristim xc8.
Ako moze neko da proba ovo isto pa da vidi da li mu se javlja ovaj problem.

Imao sam verziju kompajlera 1.30, malopre sam updateovo na 1.32 i opet isto

P.S. Kada izbacujem vrednost 150kHz, 250khz, 1,050MHz sve funkcionise normalno

Moram da posaljem ovako sliku zbog rezolucije

[img]http://postimg.org/image/za5y1dv5r/[/img]
http://postimg.org/image/za5y1dv5r/

Edit: zaboravio sam " = 0 " na ovoj slici ali ne menja nista...
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: MplabX i XC8 moja greska ili bug11.06.2014. u 22:53 - pre 119 meseci
Probaj ovako:

Code:
unsigned long proba = 5 * (unsigned long)10000;

gorankg
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: MplabX i XC8 moja greska ili bug11.06.2014. u 23:03 - pre 119 meseci
Citat:
goran_68: Probaj ovako:

Code:
unsigned long proba = 5 * (unsigned long)10000;


ili skraceni iskaz

unsigned long proba = 5 * 10000L;

Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

Risto.
Risto Pejasinovic
Crvena Crkva

Član broj: 192157
Poruke: 81
62.240.22.*



+10 Profil

icon Re: MplabX i XC8 moja greska ili bug11.06.2014. u 23:05 - pre 119 meseci
Hvala na pomoci.

Bas je to bio problem. Pomogao mi je mikikg malo pre pa mi je pomogao da resim to.

unsigned long proba = 5 * 10000L;
On mi je dao ovo resenje, ali ista je stvar.

Samo ne znam da li je o bug kod njihovog compilera ili tako treba.
Posto mi je u mikroc-u normalno radilo. Probacu i u Keilu ali verujem da ce isto da radi.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 00:18 - pre 119 meseci
i long i long long su u xc8 32bita
10000 i 10000L ne prave razliku, to je obicna int velicina
vec za ove vece tipa 100k ili milion mora L

da li ovo tuces kroz simulator ili kroz pravi pic? koji pic? simulator je dosta bagovit tako da ako koristis simulator verovatno je tu greska


btw retardiran je XC8 .. stavi

proba = 5L * 10000L;
ili
proba = (unsigned long) 5 * (unsigned long) 10000;

dakle da bi radilo mora oba da budu unsigned long (retardirano ?!?!)

Code:

unsigned long b;
unsigned long a;
b = 5;
a = b * 10000L;


ovako isto radi i ovako
Code:

unsigned long b;
unsigned long c;
unsigned long a;
b = 5;
c = 10000;
a = b * c;


zasto 5*10000 ne radi je retardirano, ja bi rekao bug u xc8

[Ovu poruku je menjao bogdan.kecman dana 12.06.2014. u 01:41 GMT+1]
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.static.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 08:13 - pre 119 meseci
Ja probao to sve isto sa XC16 i ISTO se ponasa!
Buguje kada se ne navede explicitno da je konstanta long.

Doduse u simulatoru sa slucajno izabranim PIC modelom ...


Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

Risto.
Risto Pejasinovic
Crvena Crkva

Član broj: 192157
Poruke: 81
62.240.22.*



+10 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 09:52 - pre 119 meseci
Sva sreca pa je simulator "dobro" radio.
Pa isto sto se desavalo na pic-u (16f884) desavalo se i u simulatoru.
Posle sam shvatio da je pocinjalo da se gubi za frekvencije oko 32 000 (duzina inta) pa do 100 000. (kad se mnozi 4 * 10 000 npr. A kad upisem 40 000 direktno, onda radi)

A ja presao sa bagovitog mikroc-a na bagovit xc8 :D
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 10:03 - pre 119 meseci
Treba da radi i ovako:

Code:

unsigned long proba;

proba = 5;
proba *= 10000;



Probaj ako te ne mrzi!
gorankg
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.static.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 10:10 - pre 119 meseci
Trebalo bi, nego se XC zaglupi sa konstantom, to je problem ...
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 10:18 - pre 119 meseci
U ovom slučaju se ne zaglupi. Verovatno zato što u jednom izrazu radi sa po jednim konstantnim operandom. Dva i više mu prave problem. Treba probati razne varijante.
gorankg
 
Odgovor na temu

Risto.
Risto Pejasinovic
Crvena Crkva

Član broj: 192157
Poruke: 81
62.240.22.*



+10 Profil

icon Re: MplabX i XC8 moja greska ili bug12.06.2014. u 10:41 - pre 119 meseci
To isto funkcionise.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: MplabX i XC8 moja greska ili bug

[ Pregleda: 1962 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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