Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1187 / 1319
(#) benjami válasza gtk hozzászólására (») Nov 21, 2014 /
 
Én a szimulátorban kezdeném a hiba keresését. Egyébként nekem is gondom volt régen a könyvtári függvényekkel. Emlékeim szerint ez a LIB és a saját rész eltérő memóriamodellű kezelése miatt volt. Miután a könyvtári LIB-eket újra elkészítettem icserny leírása alapján ( A PIC18 perifériakönyvtár újrafordítása ) az ilyen jellegű hibák megszűntek.
A hozzászólás módosítva: Nov 21, 2014
(#) gtk válasza benjami hozzászólására (») Nov 23, 2014 /
 
Koszi.
(#) xNorbi válasza norbiv8 hozzászólására (») Nov 30, 2014 /
 
Bocsi a késői válaszért, pont ilyen megoldást kerestem mint ez a TLI4970(csak tudjon I2C-t és jó lenne 4-5bemenete az árammérésre) de Peter65 válaszától is okosabb lettem. Köszi!
(#) roleez hozzászólása Dec 17, 2014 /
 
Sziasztok!

Ismét PIC18F46K80 eszköz. Analóg, SPI, soros, timer van inikor bekapcsolva.
Jellemzően hosszabb idejű kikapcsolás után (két kapcsolás között 1 óra pl.) a PIC elindul, de
erős watchdog hatásra. Azaz elindul, de mintha le is fagy valahol, majd RESET a wd hatásra,
ezt 10-15x eljátsza. Aztán elindul. Ezután ki- bekapcsolhatom, azonnal elindul a rendes program.
Majd hosszabb kikapcsolás után, megint kezdi, elindul, de sokadikra wd hatásra...
Találkoztatok ilyen jelenséggel? Nagyon úgy tűnik, mintha nem indulna el valamelyik periféria...
elsőre.
A perifériák startja után várjak némi időt? (pl. néhány 10 ms?) Ill. milyen sorrendben
"kell" elindítani a perifériákat? [SPI, CAN, Analóg, Timer, soros van.]

Köszönöm,
Roland
A hozzászólás módosítva: Dec 17, 2014
(#) watt válasza roleez hozzászólására (») Dec 17, 2014 /
 
Mielőtt használsz egy perifériát, amire egy Timernek hatása van, nyílván a timert kell előbb beálítani és igaz ez egymásra hatások esetén is. Ha van külső eszköz, akkor annak időt kell hagyni az éledésre, de ha jól olvasom, neked nincs. Gondolom a ki-be kapcsolás teljes, nem csak egy reset. Mert ha nem áramtalanítasz, akkor sok regiszter tartalma megmarad, ami az első bekapcsoláskor üres, ha nem állítod be megfelelően, hibára vezet.
(#) roleez válasza watt hozzászólására (») Dec 17, 2014 /
 
Köszönöm!
Igen, a ki- bekapcsolás teljes táp, nem RESET.

A jelenlegi init sorrend:
SPI
UART
enable RX/TX int - soros
ADC (Fosc/64, 20 TAD)
SPI init - RTC (ds1305)
Timerek
ECAN

timer interruptban megy az SPI kiküldés a 23S17 felé, 1 msec-enként, és 6 CH adc convert

Töprengek a PWRT bekapcsolásán is, késleltesse a PIC indulását kicsit.

Roland
(#) proba válasza roleez hozzászólására (») Dec 17, 2014 /
 
Leginkább a változók értékadására koncentrálnék. Lehet nem véletlen , a parsic azzal indít, az összes memória címet mindentől függetlenül töröl, mielőtt bármit csinálna.
(#) roleez válasza proba hozzászólására (») Dec 18, 2014 /
 
Szia! Hamu a fejemre, de nem értem ( Nem nekem szólt?!
(#) tikiss válasza roleez hozzászólására (») Dec 18, 2014 /
 
Szia!
Mikor ki-bekapcsolod és elindul a program, akkor mennyi ideig tart a kikapcsolt állapot?
Nem lehet, hogy a táp puffer kondijai és a rövid kikapcsolt állapot miatt nem is történik reset?

Ha jól értem akkor miután az UART-ot inicializálod engedélyezed az UART interruptot. És itt engedélyezed a globális interruptot is?
Az UART-ra milyen eszközt kötöttél?

Nálam nemrégiben történt egy hasonló eset. Az UART-ot PC-s kommunikációra használtam és mikor a PC nem volt rákötve akkor nem igazán akart elindulni a kütyü, vagy csak néha sokadik próbálkozásra. A hiba az volt, hogy az UART RX lábán se fel, sem pedig lehúzó ellenállás nem volt, így mikor engedélyeztem az UART interruptot a program egyből el is ment lekezelni a megszakítást, s a lebegő RX miatt ez újra és újra lejátszódott, és olyan volt mintha nem is futna a program.

Javaslom, hogy egy GPIO-ra tegyél egy LED-et, s kapcsold be a program különböző pontjain (pl megszakításban), hogy lásd meddig jut el a programod.

Üdv.:
Tibi
(#) roleez válasza tikiss hozzászólására (») Dec 18, 2014 /
 
Szia!

Jellemzően hosszabb időre van táp nélkül a PIC, miután nem akar elsőre indulni. Min 15-20 perc. A pufferek 2x2200 uF. Tápfesz 5V.
Valószínűsítem, hogy az interrupt engedélyezése jó (?) sorrendben lehet, mert egyébként meg jól működik.
A soros csak esetlegesen van, PC. Enélkül is elindul.
Soros TX,RX vonalon nincs ellenállás!

Beteszek egy LED-et és fokozatosan kapcsolom. Sajnos letöltés után nem jelentkezik a lefagyás. Tesztelem.

Roland
(#) watt válasza roleez hozzászólására (») Dec 18, 2014 /
 
Kikapcsolás után süsd ki a kondikat és utána kapcsold be. Biztosan nem jól inicializálod a változókat illetve perifériákat és ha valahogy elindul, a nagy kondi miatt sokat kell várni a memória kiürülésére. A sorrenddel kapcsolatban korábban írtam, hogy milyen sorrend kell, ezután leírod a rossz sorrendet és nem vonod le a következtetéseket...
Egyébként indokolatlanul nagy kapacitás a 4400uF! Max. 1000, de legtöbb esetben 470µF elég.
(#) roleez válasza watt hozzászólására (») Dec 19, 2014 /
 
Szia!

Bocsánat, 2x220 µF a tápon a puffer, elírtam...
A perifériák initjében (remélem amit leírtál a szerint is, úgy értelmeztem) az vezérelt, hogy mi mire "épül" rá.
A timer interrupt elindítása/initje előtt azért van az ADC és SPI init, mert a timerben ezeket
olvasom ill. írom. A többi irreleváns - ebből a szempontból - mikor indul el.
Ezt nem jól értelmezem?
A hozzászólás módosítva: Dec 19, 2014
(#) roleez válasza watt hozzászólására (») Dec 19, 2014 /
 
Kondikat full kisütöttem, >10 MOhm belső ellenállású műszerrel is rájuk mértem, mV
nagyságrend az eredmény.
Ezután gond nélkül elindult.
(#) vicsys válasza roleez hozzászólására (») Dec 19, 2014 /
 
A stabIC bemenetén is 220µF és kimenetén is? Az úgy nagyon nem lesz jó...
(#) persuadable válasza roleez hozzászólására (») Dec 19, 2014 /
 
Szerintem az a lényeg hogy a globális interruptot csak az init végén engedélyezd.
Ha a PIC reset láb be van kötve és engedélyezve is van, akkor nagyjából mindegy hogy mekkora puffer van a tápon, legfeljebb amíg nem sül ki, addig nem áll le. Persze akkor ha ez más perifériákkal nem okoz ütközést, amelyek előbb elvesztik a tápellátásukat, de azt is le lehet kezelni kis odafigyeléssel.
(#) roleez válasza vicsys hozzászólására (») Dec 19, 2014 /
 
Igen, be és kimenetén vannak a stab IC-nek a pufferek.
MIért nem lesz így jó?
A hozzászólás módosítva: Dec 19, 2014
(#) persuadable válasza roleez hozzászólására (») Dec 19, 2014 /
 
Kimeneten nem jó. Max néhány mikrofarad lehet.
(#) vicsys válasza roleez hozzászólására (») Dec 19, 2014 /
 
Ökölszabály, hogy a kimeneten maximum fele akkora lehet mint a bemeneten, de mindig kisebb! Ha a kapcsolásodban nem indokolja semmi sem az ekkora elkó használatát, akkor inkább olyan 1uF...max 22µF értéket használj. Én a gyári ajánlás szerinti diódákat is bele szoktam építeni.
A hozzászólás módosítva: Dec 19, 2014
(#) Bakman válasza roleez hozzászólására (») Dec 19, 2014 /
 
A stabilizátor IC kimenetére felesleges kondenzátor, max. a lábaihoz közel 100nF, a bemenetéhez közel pedig 330nF (elé mehet, sőt, kell is puffer). Bekapcsoláskor a kimenetére kötött kondenzátor rövidzárként viselkedik...
(#) proba válasza Bakman hozzászólására (») Dec 19, 2014 /
 
Stabilizátora válogatja. Sok szereti az 1-2 µF jó minőségű kondenzátort a kimeneten, kevésbé hajlamos gerjedésre vele. Az LM 317 úgy tudom kifejezetten kéri is .
(#) vicsys válasza proba hozzászólására (») Dec 19, 2014 /
 
Úgy-úgy! Ráadásul ha valami nagyobbacska fogyasztó van az 5V-on, jó ha van egy kis puffer, hogy ne az IC-t rángassa.
(#) zenetom hozzászólása Jan 7, 2015 /
 
Sziasztok!
Egy PIC-es jegyzetben olvastam a MikroPascal környezetről, hogy:
Idézet:
„Fontos, hogy ezek a termékek nem hibabiztosak, így ne használjuk őket olyan célokra,
ahol a fordítók hibás működése bármilyen kárhoz vezethet”

Bővebben: Link. Igaz, ez nem a hivatalos weboldalról van, "csak" egy főiskolai jegyzet, de azért aggodalomra adhat okot. Ez azt jelenti, hogy pl. ipari eszközöket nem biztos hogy érdemes ezzel csinálni? Továbbá, ez igaz lehet pl. az MPLAB, és C fordítójára?
Szerk.: mondjuk a C-nél találkoztam már fordítási hibával...
A hozzászólás módosítva: Jan 7, 2015
(#) vicsys válasza zenetom hozzászólására (») Jan 7, 2015 / 1
 
Ez csupán védekezés, nehogy valaki beperelje majd őket, mondván, hogy mekkora nagy kár érte a hibás fordítás miatt.
Azért elsősorban a program írójának kell nagyon odafigyelnie és persze tesztelnie...
(#) Szipák hozzászólása Jan 10, 2015 /
 
Sziasztok!

szeretnék segítséget kérni,
a következőt szeretném csinálni, szeretnék több asm fájlt használni, valamint külső header vagy include fájlokat.
mik a formai követelményei ennek?
az include az működik azokkal nincs baj
de ha 2 asm van akkor már nme fordul le bármit is próbálok.
olyan válaszokat várok, hogy hova helyezem el a főprogramon belül az includeot vagy hogy lépek át a másik asm be a programon belül.
szóval a formai követelmények.
előre is köszönöm.

*Mod: Az utólagos üdv helyett, használd a shiftgombot a mondatok elején!
A hozzászólás módosítva: Jan 10, 2015
(#) edison14 válasza Szipák hozzászólására (») Jan 10, 2015 /
 
Szia!

Azokat az include fájlokat amiben csak szubrutinok vannak, azokat a program végén includeold. Azt nem tudom hogy miért van szükséged két asm fájlra, de ha csak egy programot szedtél ketté akkor szerintem a fő asm fájlodba a szubrutin hívások elé kéne betenni és akkor oda fogja beszúrni az MPLAB a másik asm-ben levő programot.
(#) foxi63 válasza Szipák hozzászólására (») Jan 10, 2015 /
 
Megoldás lehet, hogy átnevezed. inc-re, valamint az ott használt változókat CBLOCK -ba rakod cím nélkül . ekkor a fordító automatikusan befordítja az az "include ...." helyétől kezdődően nekem igy gond nélkül működik.
A hozzászólás módosítva: Jan 10, 2015
(#) Szipák válasza edison14 hozzászólására (») Jan 10, 2015 /
 
Köszi a választ, a lényeg, hogy olyan komplex programot írok, hogy az lcd kezelés menne egy asm fájlból, amibe van include az lcd inicializálására,ahogy írtad is a végén működik az include, de ezt már tudtam (bár elég fura). Valamint van egy main.asm amiből át szeretnék lépni az lcd-s asmbe, ha kell.
Láttam már ilyet működni, hogy több asm van, a main.asm lefordul gond nélkül, viszont az lcd.asm-be már egy MOVLW 100-at is hibával fordít.
Nyilván valahogy úgy kell formázni, hogy ezt megfelelően fordítsa be.
Erre valami ötletetek van esetleg?
Az lcd.asm valaha főprogram volt, de megcsináltam úgy, hogy most már "univerzális".
(#) Szipák válasza foxi63 hozzászólására (») Jan 10, 2015 /
 
Köszi a választ, szeretném asm.nek megtartani..., de nyilván olyan lesz a végeredmény ami működőképes.
(#) Hp41C hozzászólása Jan 19, 2015 / 1
 
Figyelem: A legújabb MpLabX lecseréli a PICkit3 operációs rendszerét (PicKit 3 3.01 -re), amivel az MpLab 8.xx nem képes működni. Bővebben: Link
(#) nedudgi válasza Hp41C hozzászólására (») Jan 19, 2015 /
 
Köszönjük a figyelmeztetést!
Nem tudom, más hogy van vele, de én már egy ideje verem a fejem a falba, hogy anno a Microchip kontroller mellett döntöttem. Az MPLabX első bétájától kezdve becsületesen próbálkoztam szinte mindegyik verzióval, de nem sok sikerrel. Valahogy nem nyerte meg a tetszésemet, nehezem tudom számontartani, hogy éppen mi mit csinál a fejlesztőrendszerben. Az MPLab követhető, tiszta megoldás, vannak benne faramuci hibák, következetlenségek, ennek ellenére kézben tartható. Én ellenszenvesnek tartom ezt az agresszív "fejlődést" a Microchip rendszerében. Mai fejjel már biztosan a más kontrollercsaláddal kezdenék.
Következő: »»   1187 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem