Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Köszi a segítséget, most nincs gond a táblázattal, megy rendesen. Ezért most nem piszkálom, de majd lehet kiprobálom amit irsz.
Kösz Pali
Akkor már csak annyit, hogy a tábla címének szebb betöltéséhez ( a példa szerinti movlw 0x08 helyett) movlw high TABLA1.
Ha a táblázathoz hozzáférő kódban használnád a PCLATH regisztert is szabályosan, és nem az ADDWF PCL,f-fel ugranál, akkor teljesen mindegy lenne, hogy hová kerül a táblázat. Ekkor feleslegessé válna org-gal vagy más trükkel "jó helyre" tenni a táblázatot, egyszerűen odabiggyesztenéd a kód után, kerül, ahova kerül. A fix helyre igazítás azért sem elegáns, mert ha véletlenül 255 byte fölé nyúlik a táblázat hossza a fejlesztés során, akkor nem ér semmit az egész. Erről beszélt trudnai tegnap este.
Idézet: „és igy előtte sok hely menne kárba, ha oda nem írnék semmit. Ha meg a program végén lenne, akkor átkerülne a page2-re.” Ezt most nem ertem, ne haragudj! Miert menne karba? Nem mindegy neked, hogy a tabla elott vagy utan vannak a kihasznalatlan program memoria teruletek? Itt vannak amiket irtam itt a temaval kapcsolatban, csak ra kellett keresnem A 3.ban azt hiszem van is konkret pelda hogyan kell megvalositani: #300861 #300325 #249165 #245473
Elnézést a késői reakcióért (hét elején tárgyaltuk a linker kérdést), de emésztettem az infokat és örömmel jelentem sikerült átírnom pár korábbi programom ilyen szerkezetűre. Köszönet érte mindenkinek elsősorban TRUDNAI-nak (csupa nagybetűvel ).
Nagyon tetszik a dolog, így tud az ember többször felhasználható modulokat gyártani adott típus feladatokhoz, ami a fő célom volt.
Orulok, hogy sikerult, de most kicsit Nemecsek Ernonek erzem magam Eddig mindig csupa kicsivel irtak a nickem, most meg csupa naggyal
Idézet: „Nagyon tetszik a dolog, így tud az ember többször felhasználható modulokat gyártani adott típus feladatokhoz, ami a fő célom volt.” Szép lenne, ha ez így lenne, de nemrég tárgyaltuk, hogy a linker nem erre van kitalálva, és nem nagyon lehet minden PIC-hez jó modult írni. Talán családokon belül még elmegy, főleg ha nem tartalmaz spéci regiszterneveket, ill. olyan perifériákat, ami az egyikben van, am ásikban nincs, vagy nem egyformán kezelendő. Mondjuk ettől még lehet trudnai nevét nagy betűvel írni, mert megérdemli!
Szia!
nyugi megoldódott a probléma, tudom,h. nem bonyolult, hisz működik is, várakozás is megfelelő volt meg a bemenetek beállítása is, szal minden. Igen sajnos nem tudok egész nap ezzel foglalkozni mivel vannak egyéb kötelességeim is és persze egy határidő, és persze,h.nehéznek tűnt elsőre. A nagy sietségről meg annyit,h.mivel eddig sosem foglalkoztam kontrollerekkel nem volt meg a kellő eszközöm,h.normálisan lássam mi történik, teszteljem, amit utólag sikerült pótolnom. "Szerinted honnan a fenéből tudnánk mi a hiba?"Nem vártam,h.írjátok meg helyettem csak útmutatást és pár hasznos infót kértem mikor számomra érthetetlen volt a hiba, hisz Ti már sokkal gyakorlottabbak vagytok ezekben. azért nem kell egyből nekem esni, tudom néha kérdéseim nektek primitívek, de nekem nem voltak azok, akkor még most se tudok mindent, de ami eddig kellett azt sikeresen elsajátítottam, így is sokat segítettetek. na ennyit erről. amúgy minden fut és működik, amit eddig sikerült megoldanom, de még messze nem végeztem, ebből még lehet többet is kihozni ha érdekel, akkor elmondom mit is sikerült eddig megvalósítottanom
így van! Csupa naggyal! Igazából én nem vagyok nagyon nagy spiller az ügyben, eddig 1 féle pic-et próbáltam idomítani (16f877), az minden szempontból elégnek bizonyult eddig, később meg meglátjuk....
Lehet nem erre lett kitalálva, de úgy tűnik kényelmesen használható erre. Ez előtt is moduláris szerkezetűre próbáltam írni az asm programokat, hogy ne legyen "kín" mindig bitről-bitre végig gondolni mindent újra. Includolást használtam erre, amivel ment is csak debug-oláskor nem volt követhető az include file-ban mi is történik (csak a main ablak volt megnyitható).Ezzel viszont az MPLAB szépen ugrál ablakról ablakra (modulok asm) és minden jól követhető.
Ezt írtad:
Idézet: „többször felhasználható modulokat gyártani adott típus feladatokhoz” Aztán ezt: Idézet: „Lehet nem erre lett kitalálva, de úgy tűnik kényelmesen használható erre. Ez előtt is moduláris szerkezetűre próbáltam írni az asm programokat,” A modularitás és a típusfeladatok általános megoldása két különböző dolog. Én az elsőre idézetre írtam, hogy nem erre van kitalálva! :felkialtas:
Idézet: „Nem vártam,h.írjátok meg helyettem csak útmutatást” Idézet: „csak sajnos nekem sürgős,...” Én erre írtam, hogy ha elolvasnád az adatlapot és megértenéd, akkor már rég készen lennél! Itt tépelődsz hetek óta és nem jutsz előre. Egy demo alapján próbálsz valamit elérni, ráadásul sűrgősen! Kíváncsi leszek kész leszel-e egyáltalán, ha nem vagy hajlandó kézbe venni a doksit! Mit gondolsz mi honnan tudjuk mindezt? Hidd el, nem egy fórumon kérdeztük meg! És most ne gyere azzal, hogy ezért van a fórum..., meg hasonló dolgok, mert nem mondhatod, hogy nem lett elmondva mit tégy! Többek között most is ezt teszem...
Amellett, hogy teljesen igazad van, én mégis kíváncsi lennék, hogy mi az, amit meg kellene csinálni és mi volt az a bökkenő, ami a problémát okozta.
Várom tehát szigetivan fórumtársunk válaszát a saját felvetésére, miszerint "ha érdekel, akkor elmondom mit is sikerült eddig megvalósítottanom". Persze, hogy érdekel, és biztosan másokat is érdekel, mivel az ilyen, gyakorlati tapasztalatokból sok apróságot meg lehet tanulni. Szóval hajrá, én kíváncsi vagyok!
Sziasztok!
mivel ilyen kíváncsiak vagytok és eléggé rágjátok a fülem, hogy sokat kérdeztem ahelyett,h.adatlapot olvastam volna. Persze amire szükségem volt előtte mindig elolvastam mielőtt kérdeztemtudjátok nem évek óta foglalkozom ilyesmivel.. mit is valósítottam meg?? egy áramkört,melyet a PIC vezérel és 3db szenzorral mér (de ezek helyére bármely más hasonló tehető), adatokat feldolgozza és bluetooth vagy gsm kapcsolaton keresztül egy általam beállított mac című telefonnak elküldi ezeket a mért adatokat. röviden ennyi, ez eddig müködik Lehet nektek ez nem sok, de örülök,h.eddig minden jól működik... ezt még folytatni fogom, nem áll meg a világ ezzel remélem ez elég kielégítő válasz volt
Szép feladat, és ha működik, akkor becsületedre válik, de szilva nem kimondottan csak ezt kérdezte, annál inkább azt, hogy mit tettél az A/D működésének érdekében, azaz miért nem ment a konverzió(kiindulva az eddig feltett kérdéseidből, és megcélozva az arra adandó válaszokat). Tehát mi volt a baj?
baj a programban semmi sem volt, inkább abban,h.akartam megközelíteni azt, hogyan lássam milyen eredményeket ad vissza, és akkor lepődtem meg,h.már napok óta működik, csak nem láttam...
azaz, hiba mértek a szenzorok és adnak jó eredményeket,mivel ezután soroson küldi a pic nem figyelem az adatokat mondjuk hyperterminálon,én Mplabban vártam,h.vmi kerüljön a regiszterekbe.. tanulságos volt, de ebből is tanultam..
Gondolom debuggoltad? Pedig akkor ha töréspontokat teszel egy-egy konverzió után a programba, akkor elvileg látni kellett volna a kapott eredményeket!
Minap én is találkoztam egy debuggolási hibával(?). Nem hagyta, hogy töréspontot tegyek egy CCP1 megszakítás lekezeléshez, és máig sem értem, hogy miért... Az ilyenek miatt és a miatt, hogy nem lehet minden folyamatot debuggolni, nekem van egy RS232 panelem, amit bármikor rátolok a céláramkörre és azon keresztül elküldve a kérdéses regiszterek tartalmát, látom a valós eredményeket.
Én meg úgy jártam egyszer, hogy az RA0-ra bevitt analóg jel (egy D/A konverter kimenete) értéke "nem akart" stimmelni. Hosszú időbe tellett, mire rájöttem, hogy a fennhagyott PICkit2 terheli le. Pedig írják, hogy 4,7 kOhm-os lehúzás van a föld felé...
Idézet: „Pedig írják, hogy 4,7 kOhm-os lehúzás van a föld felé...” Ez csak az ujabb generacios PICkit2-kben van benne, amiket "pirs gombosnak" szoktak csak hivni. Jomagam modositottam a "fekete gombosomat" a Microchip ajanlasa szerint, ugyhogy belulrol mar az enyem is piros gombos.
Nekem meg a debug most azt mondja, (icd2-vel is meg Pickit2-vel is), hogy nem tud kapcsolódni az áramkörhöz.
Olvasni, írni tudja, csak a debug nem megy, de azthiszem az előző 2-höz nem használja a quartzot, a debughoz meg igen. Lehet hogy van valami gubanc a quartz környékén. Ha már itt tartunk, akkor valaki elmondhatná, hogy tudom használni a pickit2 analyzer-ét, mert ráraktam a 6-os pint a quartz egyik lábára, mire a 6-os láb a beállításoknál I/O között kezdett váltogatni, és az analyze-ot sem tudom rávenni, hogy szépen mutassa a quartz lábán lévő négyszögjelet. Mivel szkópom nincs, jó lenne ha a pickit2-őt tudnám hasonlóra használni, csak a leírás kissé kusza számomra. Idézet: „Ha már itt tartunk, akkor valaki elmondhatná, hogy tudom használni a pickit2 analyzer-ét, mert ráraktam a 6-os pint a quartz egyik lábára,” Ne is folytasd... Ezzel csak az a gond, hogy oda rateszel barmit is, a kvartz leallhat - vagy gerjedhet... Allitsd be a config fuse-okat ugy, hogy az FOSC/4 kimenjen a TCKOUT labon es arra akaszkodj ra... Amugy hogy a clock megy-e azt egyszerubb egy LED villogtatoval ellenorizni, szoval mindig legyen keznel egy ilyen alkalmazasod - azzal beallitod, hogy 1mp-kent villogjon, es azt szepen szabad szemmel is lathatod, hogy stimmel-e vagy sem (marmint nagyjabol). Ha az sem megy akkor addig kell keresni a hibat ameddig nem megy, es csak azutan tovabb lepni hogy az megoldodott...
Ahha, ok, ezt kipróbálom, mert természetesen pont egy ilyen 1mp-es villogást raktam csak bele próbának, de akkor a quartz összeesése miatt nem ment. Mondjuk amíg nem volt rajta a pickit2 addíg ment a a villogás, de csak akkor ha a programozó módba álltam, nyomtam egy build all-t, meg egy program, majd release-t, és akkor is ilyen üzenetet írt. C progi 4 sor az egész. Azt már észrevettem, hogy ha 4MHz-nál nagyobb quartzot rakok rá, akkor a debug nem tud rendesen futni, azoknál az utasításoknál ahol a c függvények fordítanak a háttárbe több sort, ott ilyenkor hibaüzenetet írogat.
Idézet: „valaki elmondhatná, hogy tudom használni a pickit2 analyzer-ét” A Microchip már elmondta a User's Guide-ban. A kvarcot viszont ne nézegesd vele, mert 1 MHz a maximális mintavételezési frekvenciája.
Sziasztok
Lenne egy kérdésem: hogyan lehet azt megoldani szoftveresen, hogy egy PWM modul kimenőjele egyik alprogramban az egyik, a másik alprogramban egy másik lábon jöjjön ki, egymást kizárva? Például az egyik PWM modul kimenete az RC1 láb, ez eddig rendben, de egy másik alprogramban arra van szükségem, hogy a PWM jelet máshonnan vehessem le. Léptetőmotor vezérléshez kell, most külső logikával oldom meg.Mindkét PWM modult használom. 18F452 a processzor, és assemblyben programozom. köszönöm előre is üdv
Tisztelt fórumozó társak!
Kérdésem a következő: Ha van egy delay ms(500) prancsom egy progiban és el van helyezve egy megszakítás is (PIC int lábát figyelem vele) akkor megszakad a delay is ha csak a felénél tart akár? És hogy van-e jelentősége hogy hová teszem az interruptot? Előre is köszönöm a választ! Üdv! //Tamás//
Amikor a másik alprogramba megy, akkor a nem hozzá tartozó pwm lábat visszaváltod sima digitális lábbá, és inaktív állapotba állítod. Vagy ha van pl. külső lehúzó ellenállás, akkor a hozzá tartozó tris bittel bemenetté állítod a lábat. Az alprogramhoz tartozónál meg az ellentétét csinálod.
1. Meg
2. Maga a rutin mindegy hol van, de megszakításkor a PIC a megszakítási címre ugrik mindenféleképpen, tehát oda legalább egy ugrást el kell helyezned, ami a megszakítási rutin elejére mutat (16F-nél 0x0004, 18F-nél 0x0008 vagy 0x0018 cím) Idézet: „Ha van egy delay ms(500) prancsom egy progiban és el van helyezve egy megszakítás is (PIC int lábát figyelem vele) akkor megszakad a delay is ha csak a felénél tart akár?” Termeszetesen, ezert a neve "megszakitas". Azonban mikor vissza tersz a megszakitas kezelobol, akkor a delay_ms rutin folytatodik... azaz pl 250ms-nel megszakitast kap, azt szepen vegre hajtod, tart mondjuk 1ms-ig mire az interruptot lekezeled, aztan mikor visszatersz tovabb var meg 250ms-t, azaz osszessegeben 501ms-ot varakoztal a foprogramban...
icserny már leírta, én csak azért ismétlem, mert egyből az ugrott be, ahogy olvastam az írásodat, hogy nem olvastad el a PK2 specifikációját! Ez nem MHz tartományú oszcilloszkóp!
|
Bejelentkezés
Hirdetés |