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

PIC C18 nestabilne variable

[es] :: Elektronika :: Mikrokontroleri :: PIC C18 nestabilne variable

[ Pregleda: 2110 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

developer94
Nikola Kolevski
Student
Beograd

Član broj: 287813
Poruke: 38
*.dynamic.isp.telekom.rs.



+3 Profil

icon PIC C18 nestabilne variable20.05.2012. u 11:13 - pre 145 meseci
Da li se nekome desavalo da varijable same od sebe pomere svoju vrednost za +/- 20 ili makar za 1 u toku rada?
Otkucao sam neko parce koda koje je skoro u potpunosti bazirano na globalnim varijablama i koje ima nicim izazvane tripove i skokove.
Kod sam preorao vise puta, i odradio debug temeljno, i prilicno sam siguran da radi, posto veci deo ponovljenih izvrsavanja funkcionise bez problema. Nazalost ne mogu da dozvolim da i jedan od prolaza utripuje, te mi ovo pravi problem :/

Da li globalne varijable zaista mogu uticati toliko?
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC C18 nestabilne variable20.05.2012. u 11:41 - pre 145 meseci
Evo sad cu ja da bacim pasulj....
 
Odgovor na temu

goran_68

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



+81 Profil

icon Re: PIC C18 nestabilne variable20.05.2012. u 13:38 - pre 145 meseci
Same od sebe, nikako. Daj taj kod da vidimo.
gorankg
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: PIC C18 nestabilne variable20.05.2012. u 15:59 - pre 145 meseci
Sace tatko da uzme tastaturu u svoje ruke :) pa da resi "nestabilne" varijable.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable20.05.2012. u 16:36 - pre 145 meseci
Citat:
developer94: Da li se nekome desavalo da varijable same od sebe pomere svoju vrednost za +/- 20 ili makar za 1 u toku rada?
Otkucao sam neko parce koda koje je skoro u potpunosti bazirano na globalnim varijablama


1. da li si siguran 100% da te globalne varijable ne menjas iz interapta i slicno, ako nisi 100% siguran, postavi ih na volatile za svaki slucaj pa vidi da li i dalje imas problem

2. da li koristis pointere? da li si siguran da ti nije neki pobegao?

3. da li sprava radi u industriskim uslovima? nemas neke smetnje koje lude oko sprave (neke motore i slicno) ?
 
Odgovor na temu

developer94
Nikola Kolevski
Student
Beograd

Član broj: 287813
Poruke: 38
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: PIC C18 nestabilne variable21.05.2012. u 08:33 - pre 145 meseci
Tatko je mesto tastature uzeo lemilicu, posto je to njegov deo ;p
Ja sam u medjuvremenu na istoj tastaturi pobacao zastite kojima nije smetalo mnogo ako jedan od uslova pobegne za +/-2~3 te sve radi dosta stabilnije.
Bas cu da probam danas ponovo da vidim da li su smetnje unosile neoptokaplerisani izlazi i ulazi na cipu - juce smo utvrdili da smo propustili cini mi se 2 komada.
Ako ne uspe ni ovako, uzecu da napakujem bar deo koda oko kog se sve lomi u jedan fajl, pa cu da okacim.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable21.05.2012. u 14:03 - pre 145 meseci
uopste ne mora da znaci da je problem u delu koda koji se time bavi, ako ti varijable menjaju vrednost u 90% slucajeva imas niz kome si omasio index ili neki pointer koji ti je pobegao ... kompajleri to ne proveravaju tako da ako imas npr

Code:


char niz[20];
char varijabla1;
char varijabla2;

...

niz[20] = 10;



ti si ovde efektivno promenio vrednost variable1 (mada ne mora da znaci, mozda si promenio bilo sta bilo gde, zavisi kako kompajler napakuje sve to, ali u svakom slucaju nisi uradio ono sto si hteo)
 
Odgovor na temu

developer94
Nikola Kolevski
Student
Beograd

Član broj: 287813
Poruke: 38
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: PIC C18 nestabilne variable21.05.2012. u 20:44 - pre 145 meseci
Nit niza nit pointera nema, sve je svedeno na goli minimum po tom pitanju, zato i imam gomilu globalnih varijabli... Al u glavnom sam resio problem tako sto sam zatvorio opseg provere vrednosti (ionako je medjusobna razlika po 5-10k) gore dole za 20tak.
Zasad funkcionise ok, bar ovaj deo koji je bagovao, tako da ako je nesto ostalo, lakse cu primetiti, pa javljam sta je bilo.

Hvala u svakom slucaju!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable22.05.2012. u 01:18 - pre 145 meseci
da li si palio optimizaciju na C18? Moguce da i on zabaguje, ugasi mu optimizaciju da bi bio siguran da nije to (nikad mi se nije desilo da njegove optimizacije baguju, ali je teoretski moguce)
 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
*.adsl.net.t-com.hr.



+7 Profil

icon Re: PIC C18 nestabilne variable22.05.2012. u 08:36 - pre 145 meseci
Da su uzrok smetnje ne bi mu jedna varijabla fulala, a isto mogu da se kladim da nije ni do kompajlera, bug je u njegovom kodu, petljanje sa globalnim varijablama i tamo gdje nije potrebno.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable22.05.2012. u 12:52 - pre 145 meseci
u 99% slucajeva je PICNIC (Problem In Chair Not In Computer) no kako nije covek stavio kod da vidimo sta radi, o njemu se ne da diskutovati :D
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC C18 nestabilne variable22.05.2012. u 14:31 - pre 145 meseci
^ Kako ne, pa zato su ljudi izmislili bacanje pasulja i prevrtanje soljice za kafu.

Ja cim prodam osciloskop, kupujem kristalnu kuglu.
 
Odgovor na temu

Genie_1984
Novi Sad

Član broj: 61150
Poruke: 93



+1 Profil

icon Re: PIC C18 nestabilne variable22.05.2012. u 18:16 - pre 145 meseci
Možda ti tip promenljive ne odgovara

npr.

Code:

char varijabla1;
char varijabla2;
...
varijabla1=500;



i eto belaja...

Ali opet bez koda možemo samo da nagadjamo... i ja se slažem za PICNIC :)
 
Odgovor na temu

developer94
Nikola Kolevski
Student
Beograd

Član broj: 287813
Poruke: 38
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: PIC C18 nestabilne variable23.05.2012. u 20:49 - pre 145 meseci
Naravno da koda nema, te zaista mozemo samo da nagadjamo. Razlozi su to sto ce se kod koristiti u uredjajima koji su vlasnistvo ovlascenog servisa za koji ih radim te je kod striktno in-house. Takodje, greska lako moze biti uslovljena plocom koja je u stanju razvoja i koja je pretrpela mnostvo izmena koje naravno mogu uneti neke smetnje. (da nema ta kristalna kugla mozda mogucnost emulacije/uracunavanja hardvera u viziju/odgovor/.pdf ili u kom vec formatu vracaju? ;p) Upravo iz tog razloga pitam, cisto iz radoznalosti, da li se nekome to ovde vec desavalo, posto smatram da ste daleko iskusniji od mene, te ste verovatno naletali na razne igrarije koje se u razvoju desavaju.

PICNIC? U potpunosti se slazem sa time, medjutim, vasi piknici bi isto tako bili vise nego od koristi posto me mogu usmeriti u pravom pravcu.

Resenje sam nasao, i objasnio u nekom od prethodnih postova, ali posto se diskusija nastavlja, onda hajmo bar da je usmerimo u pravom toku!
Sad, ako je neko propustio pitanje sa originalnog posta: Da li globalne varijable zaista mogu da prave takve probleme usled smetnji/da li su podlozne slucajnim promenama? Da li se jos nekome desavalo ovako nesto? - bazirano u potpunosti na iskustvu.
Naravno, tacan odgovor je sve, posto je ovo hipoteticka rasprava, ne? Znaci od PICNIC gresaka koje ja vidim kao neku vrstu iskustva do neke primedbe na meni promakli deo errata dela manual-a.

Ukoliko iz nekih razloga ne mozete/ne zelite da podelite vasa iskustva, to u potpunosti razumem, i zahvalan sam na samom izlasku u susret - problem je ionako, kazem, resen.

Da, cisto da proverim - da li su ovakva pitanja ovde validna, ili jednostavno da preskocim taster nova tema ukoliko naidjem na potrebu za postavljanjem ovakvog pitanja? (na koje na zalost ne postoji konkretan odgovor)
Ukoliko nisu, ja vam se izvinjavam i zamolio bih administratora da ukloni temu, da ne bih trovao ovaj forum ovako necime.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable24.05.2012. u 02:47 - pre 145 meseci
Citat:
developer94: Da li globalne varijable zaista mogu da prave takve probleme usled smetnji/da li su podlozne slucajnim promenama?


globalne varijable se nikad ne menjaju same od sebe, isto kao sto se to ne desava ni sa lokalnim varijablama. Lokalne varijable su samo "trap for young players" iliti ako ne znas sta radis, sa globalnom varijablom je lako napraviti gresku koju posle tesko izdebagiras.

varijabla se u mcu-u menja
- kada je namerno promenis u kodu (x = 10)
- kada je slucajno promenis u kodu (pointeri koji gadjaju na pogresno mesto, izlazi iz granica nizova, nisu inicijalizovani etc etc)
- kada mcu krene da ti izvrsava datu (imas goto na smece i slicno)
- kada neki EstagodI prsne u mcu i ovaj "poblesavi" (najcesci primer su smetnje koje ulecu preko adc pina)

varijabla se u mcu-u ne menja (a hteo si)
- ako se zaboravio da je promenis
- ako treba da bude volatile a ti je nisi napravio da bude volatile (npr menjas je u interaptu)

E sad gresaka imas koliko oces, od toga da mislis da editujes lokalnu varijablu a ti editujes globalnu do toga da mislis da editujes globalnu a ti editujes lokalnu, sa jedno 5000 razlicitih gresaka izmedju ..


Citat:
developer94:Da, cisto da proverim - da li su ovakva pitanja ovde validna, ili jednostavno da preskocim taster nova tema ukoliko naidjem na potrebu za postavljanjem ovakvog pitanja? (na koje na zalost ne postoji konkretan odgovor)
Ukoliko nisu, ja vam se izvinjavam i zamolio bih administratora da ukloni temu, da ne bih trovao ovaj forum ovako necime.


sto ne bi, mnogo je lakse i konkretnije kada ima primer pa se u tom primeru direktno vidi sta je greska... jbg svi po nekad rade neki proprietary kod, i ja se 100% zalazem za open source pa opet po nekad moram da nacukam neki proprietary kod koji ne smem da delim .. sve to ima svoje ..
 
Odgovor na temu

goran_68

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



+81 Profil

icon Re: PIC C18 nestabilne variable24.05.2012. u 10:24 - pre 145 meseci
Tvoje pitanje je sasvim OK, samo je tesko dati konkretan odgovor. Kad god sam ja imao slican problem greska je bila u kodu. Jednostavno previde se neke stvari i desava se da gledajuci kod stalno prelazis preko greske. Mozda su ti promenljive pogresno deklarisane (char namesto int i sl.) pa ti rezultati matematickih izraza prave problem. Moguce je da se prekidi desavaju brze nego sto ti rutina zavrsi obradu pa imas lazne rezultate. Inace, nijedan errata za mcu koji sam ja pogledao ne navodi da su takve greske moguce. E sad...
gorankg
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: PIC C18 nestabilne variable24.05.2012. u 11:27 - pre 145 meseci
btw - hw debugger rulez kada krenu takve gluposti da se desavaju, zato ja kazem uvek pickit2 ili pickit3 i nema da boli glava, jesu oni allpic i slicni pateticni programatori koji dinar jeftiniji, ali uzmes od rsinise za 20 nemaca pickit2 klon i lepo step by step direkt na hardweru i pratis sta se desava sa varijablom i kad ce da se promeni .. uvatis bug za 10min koji trazis 10 dana vizuelno
 
Odgovor na temu

developer94
Nikola Kolevski
Student
Beograd

Član broj: 287813
Poruke: 38
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: PIC C18 nestabilne variable24.05.2012. u 13:54 - pre 145 meseci
@goran: Naravno da ne moze da se da konkretan odgovor, toga sam svesta, ali sam dovoljno sposoban da prihvatim savet i uradim kao sto mi je receno (ako nisam, savladacu sta treba, opet nista strasno)
Inace, na promenljivama se ne vrse nikakve operacije sem dodele. U pitanju su kontrolne varijable statemachine-a. Takodje sam ih oznacio kao integere a u njih trpam samo vrednosti iz opsega predvidjenog za int. Vrednosti su definisane tokenima te nije ni greska u prepisivanju. To me najvise mori...

@bogdan: Upravo ovakvom odgovoru sam se nadao (@lista mogucih gresaka)! Recimo resio mi je problem koji bi nastao nakon ukljucivanja optimizacije koja je trenutno ugasena, posto menjam par varijabli samo u interaptu, hvala za primedbu!
A inace bas PICKit2 klon i koristim, tako sam i saznao da mi kontrolne varijable u stvari divlja- dobro, ne divljaju, ali sa vremena na vreme promene, sto opet nije ocekivano ponasanje.
Najverovatnije cu da uzmem i izmenim daj kod opet, i da varijable pobacam u strukture (znam, trebao sam odavno to da uradim), i mesto tokena da koristim enume (naravno nakon sto proverim da li ih C18 uopste podrzava). Uz malo srece, u toku prepiske cu da naidjem na picnic il neki indirektni uzrok.

Hvala momci, odoh sad da cukam, pa raportiram sta se desilo kad zavrsim.

EDIT: E, pa rewrite je gotov! Sada vec sve funkcionise daleko bolje nego do sad! Medjutim, samo sam preoro sve sa tokena i globalnih na strukture i enum-e, sama logika (i potencijalne greske) su ostale nepromenje- nista od toga, upravo sam nasao uzrocnika svega ovoga... PICKit klon sa kojim radim mi je upravo ukljucen i na pauzi debug-a, a motor se cima malo po malo sam od sebe. Iskljucio sam pk2, i gle cuda, radi ko podmazan. Utesna nagrada za pola dana refactoringa: sad vec mnogo lepo izgleda :D

[Ovu poruku je menjao developer94 dana 24.05.2012. u 19:51 GMT+1]
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: PIC C18 nestabilne variable

[ Pregleda: 2110 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

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