Fórum témák
» Több friss téma |
Sziasztok!
Egy LANC kamera vezérlést szeretnék készíteni, találtam itt egy nagyon jó kis leírást, de nem boldogulok a HEX beégetésével, a csatolt hibaüzenetet dobja PicKit2. Valamit ír a programozással kapcsolatban, hogy csak a csatolt progival, soros porton lehet beégetni, ilyen létezik? Vagy csak én nem értek angolul... Ezért nem építenék egy programozót, illetve a gépemen nincs is soros port Megköszönném, ha valaki segítene. Endre A hozzászólás módosítva: Júl 30, 2014
Azt mondja, hogy a 0-s címen baj van a programozással! Jól kötötted be az IC-t, csatlakozik minden láb ? Próbálkozz esetleg egy teljes törléssel a programozás előtt!
Biztosan jól van bekötve a kontroller, más HEX gond nélkül bele megy (100nF is van, közvetlen a táplábon). Próbáltam úgy is, hogy töröltem, akkor is ez az eredmény
Árulkodó piros felirat a Configuration címke alatt: Code Protect...
- Amennyiben az írás sikeres volt, a program benne van a kontrollerben, lehet használni. - Amennyiben az írás sem volt sikeres, az összeköttetés vagy a kontroller hibás. Biztosan ezt az üzenetet kapjuk, ha az írást követően újra végrehajtjuk a Verify (ellenőrzés) műveletet, hiszen a kiolvasásvédelem miatt az összes utasítás helyett 0x0000 kódot (nop) lehet csak kiolvasni. Megoldás: A kontroller adatlapja és programozási specifikációja szerint a kiolvasásvédelem módosítása a HEX állományban.
Tehát, ha feltételezzük, hogy jó az elektronikus kapcsolat a PIC és PicKit2 közt, illetve a jó maga a PIC is, akkor égetés után nem foglalkozva a hibaüzenettel, benne van a program és használható. Szerintem én ahhoz enyhén szólva kevés vagyok, hogy módosítsam a HEX-et
A hozzászólás módosítva: Júl 31, 2014
Ha az írás végén azt jelzi, hogy az sikeres volt, akkor valóban beprogramozta a kontrollert.
Melyik az a hex? Töltsd fel ide!
Üdvözlök mindenkit!
Elnézést kérek, hogy ilyen sokáig nem válaszoltam de nagyon el voltam havazva. Kipróbáltam az MPLAB- ot. Kijavítottam amiket javasoltatok, de még így is két MESSAGE van. Mi lehet a probléma? Még azt szeretném kérdezni, hogy az MPLAB- ban nem is lehet szimulációt végezni?! Vagy csak én vagyok béna? Itt a kód és egy kép is:
A hozzászólás módosítva: Júl 31, 2014
Szia!
A két message arra figyelmeztet, hogy az utasítás olyan regisztert címez, ami nem a 0. bankban van. Ez nem hiba, csak ellenőrizni kell, hogy az utasítás előtt a megfelelő bank kiválasztása megtörtént. A forrásban benne van a banksel. Egy errorlevel -302 sorral ki lehet kapcsolni. A Debugger / Select tool menüponttal válaszd ki az MpLab SIM -et, fordítsd újra a programot.
Íme. Védelem nélkül.
Nagyon köszönöm, de ezzel is dob hibát.
Nos, találtam a microchip fórumon egy bejegyzést erre a hibára, viszont csak a tárolt változat nyílt meg a fórum nem. Belinkelem, hátha a guruk kihámoznak neked valami okosságot. Én sajnos a HEX-ben nem tudok turkálni, ott még nem tartok, illetve ez sem olyan bonyolult ha nekiülnék, csak minden kódot meg kéne néznem mi az assembly megfelelője, és az elég hosszú és macerás folyamat, örülök, ha az assembly mnemonikok szintaktikáját fejben tartom, a disassemblálás meg sosem lesz olyan mint az eredeti.
Íme a link. A hozzászólás módosítva: Júl 31, 2014
54. oldal. A 8 as config bitet kéne egyre állítani. Szerintem ez a gondja. Elvileg a 2007h címen van a hexben.
A hozzászólás módosítva: Júl 31, 2014
Nagyon köszönöm mindkettőtöknek, én nem találok benne 2007h-t
Igazad van, a picbe van 2007h címen tárolva. Ha rákattintasz a configuration kék feliratra, nem tudod szerkeszteni? Én Watt féle wltp minivel programozok és simán lehet szerkeszteni a configot. Csak valamiért nem menti el ha átírom, de ha beégetném jó lenne. 3F8C re kéne átírni.
Valami gond lesz, mert amit Hp41C küldött, abba mindkét protect bit 1. Sikerülnie kéne. Biztos jó az a pic?
Üdvözlet!
Már mindent megpróbáltam amit javasoltatok és nem működik. Mi lehet a probléma? A tápfesz stabil. 12V-ból stabilizálok egy 7805- el 5V-ot. Azon van egy 100µF-os kondi és egy 100nF-os. Az MCLR 10kohm-al a + ba van felhúzva. Ezt írja a fordító:
Biztos. Teljesen új volt. Ha valami mást beleégetek, az simán belemegy, működik is. Nem lehet, hogy van benne valami egyéb csavar is? Mert, ugye írja az oldalon, hogy soros portos égetővel működik :/
Azt írja, hogy a programozás rendben megtörtént, tehát ha az áramkör jó akkor a programban van a hiba.
A pic táplábai közé minél közelebb is kell egy 100nF kerámia!
Valakinek esetleg nincs kéznél egy ilyen PIC? Nem próbálná meg más is? Ha másnál működik, akkor tudjuk, hogy legalább a HEX jó. Egy zsák 629-et, meg 675-öt égettem már be ezzel a PicKit-el, ráadásul nyákos foglalatom van a 8lábú jószágokhoz, nem hinném, hogy ezzel lenne a gond...
Megpróbáltam megint, és sikerült! Köszönöm mindenkinek a segítséget, neked különösen Hp41C, a módosított HEX-ért
Annyit csináltam, hogy átdugtam egy másik USB-portba a PicKit-et... A hozzászólás módosítva: Aug 1, 2014
A program jó! (Nyilván az ördög nem alszik, de el nem tudom képzelni, mi baj lehetne a programmal. Természetesen leszimuláltam. Áramkörben nem tudom kipróbálni, mert nincs PIC16F630-om.)
Áramkör: 1-es lábra a szűrt és stabil 5V, míg 14-es lábra megy a föld? 2-es lábra az ellenállás (470 ohm-os, amit ellenőriztél műszerrel?) és utána a LED helyesen bekötve? (A LED másik vége persze a földre. Nyilván a 470 ohm nem kőbe vésett érték, de valami hasonló legyen. Ne 470 k ohm!) Ugyanez (mármint a 2-es lábnál leírtak) a 3-as, 5-ös és 6-os lábon? Anno júl 11-én adott válaszomban levő 5. pontban leírt ellenőrzés megvolt? Úgy emlékszem erre nem kaptam választ akkor se.
Tényleg! Házi feladat a többieknek (csak a tanulság miatt, én már megoldottam):
Ha valaki más is bepötyögte a csabagalcsaba programját MPLAB-ba, és leszimulálja, láthatja (mondjuk a View / File Registers alapján), hogy a lábak tökéletesen billegnek. Ha viszont a programot átírjuk úgy (26-os és 29-es sor), hogy az RA5 és RA4 helyett az RA0 és RA1 billegjen, akkor a szimulációban az RA lábon nem történik semmi! (Megjegyzem, a valóságban sem történne!) Ezt egy PIC12F675-nél szívtam meg nagyon. Nekem két nap kellett, hogy rájöjjek, mi van. Ezt csak azért mondom, hogy kiemeljem az MPLAB szépségét! Ő ezt is tudja! (Mármint nem szimulálja le, hogy működni fog, mikor a valóságban meg nem működik!) Természetesen csabagalcsaba ez téged (legalábbis most) nem érint.
Üdvözlet!
Én már jártasabb vagyok az elektronikában és feleslegesnek tartottam a hardveres tesztet, mert biztos voltam benne, hogy ilyen egyszerű dolgot nem hibázok el. És mégis!!!!!!!!!!!!! Efféle forrasztás nélküli bedugdosós próbapanelt használtam. Ezt már sok minden tesztelésénél alkalmaztam, de azt a sort ahová a ledeket tettem nem tudtam hogy van hidalva. Mikor már teljesen tanácstalan voltam megfogadtam a te tanácsodat: a hardveres tesztet. De gondoltam magambon milyen felesleges dolog, hát ezt hogyan tudtam volna elrontani?! Nagy meglepetésemre amikor az egyik ellenállásra rátettem a + ot az összes led világítani kezdett. Elkezdtem keresni a hibát és rájöttem, hogy olyan részére dugtam a ledeket a panelnak, hogy az a + jait összehidalta. Így egy ellenálláson keresztül világított az összes led. Kijavítottam a hibát és láss csodát, működik! Amúgy a kérdésedre válaszolva: 1kohm-os ellenállásokat használtam és közvetlen a pic tápfesz lába mellé raktam egy 100nF-es kondit. Szeretném megköszönni neked és mindenki másnak aki segített a hasznos tanácsokat. Ezt a hibát pedig ajánlom mindenki figyelmébe, mert aki ilyen panelt használ az könnyen ráfázhat!!
Üdv!
Lenne még egy kérdésem. Írtátok, hogy konfigurációnak ezt írjam: __CONFIG 0x3194 Ezt honnan lehet kitalálni? Azt tudom, hogy az adatlap 56. oldalán van a konfigurációs bitek beállítása. Ott valahol olvastam is ezt az ajánlásban. De valami nem tiszta. A config regiszterben van több vezérlő bit. (Jól tudom?) A táblázat pedig megadja, hogy hanyadik vezérlőbit mit csinál. Ezekbe a vezérlőbitekbe pedig csak 1-est és 0-át lehet beírni nem? Ha ez így van akkor hogyan lehetséges ez: __CONFIG 0x3194 ? Elnézést ha hülyeséget kérdezek, de tényleg nem jövök rá és nagyon jó lenne egy kis segítség.
A 0x kezdetű szám hexadecimális számot jelent, amit könnyű binárissá átalakítani ( nézz utána, ha nem ismered!), mindegyik hexa számjegyet 4 bináris számjeggyé kell átalakítani. A 0x3194 --> 3: 0011 1: 0001 9: 1001 4: 0100, azaz összességében --> 0011000110010100 és így már láthatod, melyik bit mivé lett !
Héló!
Assemblyben szeretnék írni olyan macrot, amiben változó hosszúságú a paraméterlista. Van erre lehetőség?
A #ifdef / #endif feltétételes fordítással biztosan megoldható, ha nem konstans számokat akarsz használni.
Lehet, például egy 16 bites paraméter:
a cimke a cél változó neve üdv. Foxi
Köszönöm szépen a választ. Most már értem.
Lenne még egy kérdésem. Ha egy bemenetet szeretnék ellenőrizni így megtehetem?
Vagyis azt akarom kérdezni, hogy a c portom 2-es bite az bemenet. Az MPLAB elfogadja ezt: PORTC,2 ? Vagy esetleg más formában kell írni? Vagy be kell rakni egy regiszterbe? |
Bejelentkezés
Hirdetés |