Fórum témák

» Több friss téma
Fórum » MPLAB kérdések
 
Témaindító: Thomas10100, idő: Nov 27, 2005
Lapozás: OK   9 / 25
(#) nÁnÁ válasza Hp41C hozzászólására (») Feb 20, 2013 /
 
Szia,
köszönöm segítséged. A Debug módot nem találtam meg, de a configot sikerült összehoznom. Közben megtaláltam azt az ablakot az MPLab-ban, ahol grafikusan is be lehet állítani a configokat. Így már működő hex-et tudok generálni.
Üdv. Balázs
(#) watt válasza nÁnÁ hozzászólására (») Feb 20, 2013 /
 
A konfigurációt ajánlott a forrásban beállítani! Sőt, ajánlott külön header fájlban, de ez csak részletkérdés. Lényeg, hogy a projecthez elmentődjön, ne pedig emlékezni kelljen ár, hogy mi is volt beállítva az ablakban...
(#) nÁnÁ válasza watt hozzászólására (») Feb 20, 2013 /
 
Abban az ablakban van egy gomb, amivel a beállításokat a kimenetre "generálja". Így csak be kell másolni a megfelelő helyre. Köszönöm a segítséget mindkettőtöknek.
Üdv. Balázs
(#) sooty hozzászólása Márc 22, 2013 /
 
Sziasztok, vettem egy gyári Pickit3-at. MPLAB v8.90-nel próbálgattam, felismeri. Pic 16f690 és 16f886 kontrollernél olyanokat írkál ki, hogy a device ID-t nem tudja kiolvasni (Failed to get Device ID), nem tudja olvasni a pic tartalmát, nem tudja programozni stb. Pic 16f648 -at felismer és mindent rendben csinál vele. Kipróbáltam a standalone Pickit3 programmer beta2 programmal is, ott mindkét kontrollert jól kezeli felismeri, olvassa, írja. Mi lehet a hiba az MPLAB-nál?
A hozzászólás módosítva: Márc 22, 2013
(#) maestro hozzászólása Márc 22, 2013 /
 
Sziasztok!
Meg tudja valaki mondani, hogy az MPLAB fordítóját hogy lehetne PRO verzióban működtetni?
A Project-->Build Options-->Project menüben a 'driver' fülnél van egy olyan, hogy 'Try Hi-Tech C PRO' gomb, amivel állítólag 45 napra aktiválni lehet ingyenesen a PRO módot. De nekem mégsem csinált semmit. Kiírta, hogy 45 napig használhatom... stb., de a kezelőfelületen a Build gombnál ugyanúgy Lite módot ír ki és a kódom sem lett rövidebb.
(#) maestro válasza maestro hozzászólására (») Márc 26, 2013 /
 
A probléma megoldódott. Az MPLAB újabb verziójával már működik rendesen! Nem tudom, hogy a kb. tavalyi verzióval miért nem ment.
(#) Poostmaster hozzászólása Ápr 6, 2013 /
 
Sziasztok.
Meg tudná valaki mondani, hogy a szimulátort hol kell bekapcsolni?
(#) zenetom válasza Poostmaster hozzászólására (») Ápr 6, 2013 /
 
Szia!
Debugger --> Select Tool --> MPLAB SIM
(#) Poostmaster válasza zenetom hozzászólására (») Ápr 6, 2013 /
 
Köszi.
De mi van akkor, ha nekem ilyen nincs?
(#) zenetom válasza Poostmaster hozzászólására (») Ápr 6, 2013 /
 
Akkor valami gebasz van.
(#) watt válasza Poostmaster hozzászólására (») Ápr 6, 2013 /
 
Telepítsd újra és ne kapcsold ki a telepítés beállításainál...
A hozzászólás módosítva: Ápr 6, 2013
(#) zenetom hozzászólása Máj 5, 2013 /
 
12F675-nél indirekt címzéssel írom az adatmemóriát.
Ha jól értelmezem az ábrát, akkor elég az FSR regiszterbe betölteni az értéket, hiszen az 8 bites, és a legfelső bit választja ki a bankot. Továbbá
Idézet:
„Reading INDF itself indirectly will produce 00h.”

Ebben nem vagyok biztos, de szerintem azt jelenti, hogy ha indirekten olvassuk az INDF regiszter értékét, akkor nullát kapunk vissza. De ha pl.
  1. MOVLW 0x30
  2. MOVWF FSR
  3. MOVF INDF,W

ezzel a kóddal olvasunk, akkor a 0x30-as címen lévő regiszter értéke sikeresen betöltődik a WREG-be.
Vagy így is nullát kapunk?
Bár az igazi problémám az, hogy indirekt írással töltöm fel a 0x30-0x5F memóriarekeszt, és MPLAB szimulátorban a másik bankban lévő regiszterek is feltöltődnek (tehát 1 bankkal eltolva).
Viszont proteusban csak az első bankban veszik fel a regiszterek az értéket.
Szerk.: így írom az adatmemóriát:
  1. .
  2. .
  3. .
  4. INCF FSR,F
  5. .
  6. .
  7. .
  8. MOVF TMR0,W
  9. MOVWF INDF
A hozzászólás módosítva: Máj 5, 2013
(#) watt válasza zenetom hozzászólására (») Máj 6, 2013 /
 
Ha egyidőben mindkét bankba ír a szimulátor, akkor hibás a szimulátor.
(#) Hp41C válasza zenetom hozzászólására (») Máj 6, 2013 /
 
Idézet:
„Ha egyidőben mindkét bankba ír a szimulátor, akkor hibás a szimulátor.”

No igen, de melyik?
Az adatlap (DS41190F page 10) szerint a Bank1 (Bank2 és Bank3) memória címtartományára való hivatkozás minden esetben a Bank0 rekeszeit éri el. Ha a Bank1 -ben írod a 0xB0 címet, a 0x30 tartalma átíródik. A 12F675 már csak ilyen.
Ebből az következik, hogy a Proteusz szimulátora a hibás, az MpLab szimulátora azt csinálja, amit a kontroller...
A hozzászólás módosítva: Máj 6, 2013
(#) watt válasza Hp41C hozzászólására (») Máj 6, 2013 /
 
Szia!
Az addik oké, hogy ha a Bank1-be címzett adat a Bank0-ban jelenik meg, mert csak 64bájt memóriája van a típusnak, így oldották meg, hogy bármelyik bankból elérhetőek legyenek az adatok, de hogy a az MPLAB a Bank1 területére is adatot jelenít meg, az nem egyezik meg a PIC-el, mert a PIC-nek ott nincs memóriája, mert akkor 128bájt lenne összesen, amit botorság lenne tükrözve használni. Szerintem az MPLAB szimulátora hibás!
A hozzászólás módosítva: Máj 6, 2013
(#) Hp41C válasza watt hozzászólására (») Máj 6, 2013 /
 
Ha a 12F675 -tel az alábbi programot hajtatod végre:
clrf STATUS
movlw 0xB0
movwf FSR
movlw 0xAA
movwf 0x30
xorwf INDF,w
Akkor az eredmény 0 lesz. Ha nem mutatja, hogy a 0xB0 memória címen a 0xAA látszik, a művelet nem lesz követhető. Az MpLab az összes típus esetén mitatja a tartalmat az ilyen megoldású memóriáknál, még az FSR -ek esetén is. Ha még a megszakításra is gondolunk, ami olyan esetben csap be, amikor a Bank1 az aktív bank, a mentés a Bank1 -beli címekre fog történni - ennek az eredményét is látni kell. Azaz, ha egy rekeszt írunk azon a területen, ahol nincs fizikai RAM, a hatásának látszódni kell.
(#) zenetom válasza Hp41C hozzászólására (») Máj 6, 2013 /
 
Köszi a választ!
watt: neked is!
Közben rájöttem hogy mekkora szarvashibát követtem el. Elfelejtettem, hogy az adatmemória csak 64byte-os. Az adatlap szerint a 0x9F-es memóriacím után a 0x20 következik, ahogy írtátok is. Most már világos, miért írja látszólag a memóriát "tükrözve". Azért, mert 1 bankkal előtti adatokat olvas ki a szimulátor/PIC, a memória hiánya miatt (szerintem). A proteus szimulációs fájlban meg lehetséges, hogy ki van alakítva a 0x9F utáni memóriarész.
De a lényeg, hogy nem vettem figyelembe, hogy csak 0x9F-ig van a memória, illetve a GPR rész csak 0x5F-ig használható fizikailag.
(#) b0077 hozzászólása Jún 14, 2013 /
 
Sziasztok!

Másik topicban feltett kérdésem, amit sajnos rossz helyre írtam sorry érte.
Ez volt az:

Már egy jó ideje megépítettem az oldalon található leírás alapján a PIC vezérelt utastér világítás késleltető elektronikát. Most viszont módosítani szeretnék 1-2 értéket illetve utasítást benne. Ehhez viszont C kódban kellene átírni a megfelelő dolgokat, majd lefordíttatni hex-be. Addig eljutottam, hogy letöltöttem a megfelelő progikat (MPLAB IDE több verzióját is illetve a megfelelő, 12-16F -es beépülő C fordítót). Ha jól értelmezem ennek a menetét, olyan fordító program sajnos nem létezik amit amivel megnyitom a C kódot és hex kódot csinál nekem. Amit már csak beleégetek a PIC-be ugyan úgy mint ahogyan a kész hex kóddal tettem korábban, amit le lehet tölteni a késleltető leírásából.
A fordítás menete elvileg az hogy elindítok egy új projektet az MPLAB IDE-ben, amihez hozzáadom a C kódot, ezután ezzel a progival közvetlenül lefordítom majd beleégetem a PIC-be. Itt akadtam meg, ha jól láttam a projekten belül olyan beállításokat kell végeznem a PIC típusához kötötten ami megoldaná, h hibát dobjon a fordítás közben. A jelenlegi beállításokkal (legalábbis szerintem beállítás baja van) ezeket a hiba üziket dobja ki:

Error [800] undefined symbol "INTIO"
Error [800] undefined symbol "WDTDIS"
Error [800] undefined symbol "PWRTEN"
Error [800] undefined symbol "MCLREN"
Error [800] undefined symbol "UNPROTECT"
Error [800] undefined symbol "BOREN_XSLP"
Error [800] undefined symbol "IESODIS"
Error [800] undefined symbol "FCMDIS"

(Ha a kódhoz hozzá sem nyúlok is ezt kapom, tehát nem a belepiszkálás rontotta el). Külföldi fórumok alapján szerintem a projekten belül kellett vna még vmit beállítanom. Vagy ha tévedek remélem meg tudja mondani valaki h mégis mi lehet a baja, mit rontottam el.
Az említett cikk: Ez

Ha jól értem az előző topicban a válaszokat, akkor a "Configuration Bits"-eket kellene beállítani megfelelően, ehhez kérnék egy kis segítséget. Esetleg, ha egy komplett lementett projectet kapnék amit már csak meg kell nyitnom az MPLAB IDE-vel és egyből fordíthatok megköszönném.
A hozzászólás módosítva: Jún 14, 2013
(#) MPi-c válasza b0077 hozzászólására (») Jún 14, 2013 /
 
Nem kell semmit sem változtatni a config biteken!
Letöltöd és telepíted az MPLAB IDE 8-at és az XC8-at A projekt varázslóval készítesz egy új projektet a megadott PIC-re és nyelvi eszköznek az XC8-at választod ki. A projektbe berakod a letöltött forráskódot. Hiba nélkül fordítja.
(#) b0077 válasza MPi-c hozzászólására (») Jún 14, 2013 /
 
Ezer hála, úgy néz ki lefordul Az volt a baj h eddig fordítóként az HI-TECH Universal ToolSuite volt kiválasztva, rossz fordítót töltöttem le hozzá...
(#) b0077 válasza MPi-c hozzászólására (») Jún 14, 2013 /
 
Teljesen jól működik, le tudtam tesztelni a PIC működését is, már úgy viselkedik ahogy szerettem vna, és így már bármikor módosíthatom is a programját.
Köszi még1x mindenkinek!

üdv
Balázs
(#) Winczce válasza edison14 hozzászólására (») Júl 29, 2013 /
 
(#) nagysus hozzászólása Júl 30, 2013 /
 
Sziasztok!

Debug üzemmódban hogy lehetne visszaléptetni? Mplab v8.90. Teljesen random resetel a pic, és nem találom meg miért, honnan ugrik vissza.
(#) watt válasza nagysus hozzászólására (») Júl 30, 2013 /
 
Sehogy.
(#) nagysus válasza watt hozzászólására (») Júl 30, 2013 /
 
Köszönöm. És azt meg lehet csinálni hogy a fordításokat, hex. cof. eer. stb ne a meghívott asm könyvtárba, hanem másik könyvtárba hozza létre?
(#) watt válasza nagysus hozzászólására (») Júl 30, 2013 /
 
A fordítási opcióknál be lehet állítani az output könytárat is. (zöld fogaskerekes ikon)
Érdemes elolvasni a nemrég belinkelt doksit!
(#) nagysus válasza watt hozzászólására (») Júl 30, 2013 /
 
Igen de sajnos csak aktív set esetén van zöld fogaskerék, és csak arra érvényes. Ha megnyitok egy asm-et nem aktív, (nincs a zöld fogaskerék), nem is szeretném külön elmenteni.
(#) pbalazs hozzászólása Aug 18, 2013 /
 
Üdv urak!

Egy projektben több .c fájlt szeretnék használni, de a fordító sehogy sem akarja észrevenni, hogy van több is. Hiába adom hozzá a projekt forrásfájlokhoz, mindig csak a main.c-t fordítja:
Executing: "C:\Program Files\HI-TECH Software\DSPICC\STD\9.60\bin\dspicc.exe" -C C:\mplab\encoder\main.c --chip=30F2010 ...
Itt kellene (gondolom) felsorolni a többi .c fájlt is, de nem jöttem rá, hogy hogyan.
Google és MPLAB help nem segített.
Van ötletetek?
MPLAB 8.83, Hi-Tech dspicc
(#) messer hozzászólása Szept 23, 2013 /
 
Sziasztok a következő lenne a problémám.
MPLAB v8.89 pickit3 12F617-et nem tudom programozni a következő üzenetet kapom
Idézet:

PICkit 3 detected
Connecting to PICkit 3...
Firmware Suite Version...... 01.28.40
Firmware type......................Midrange
PICkit 3 Connected.
PK3Err0035: Failed to get Device ID


Van ötletetek?
Elvileg pickit3 támogatja a 12f617-et
(#) _vl_ válasza messer hozzászólására (») Szept 23, 2013 /
 
Ki adja a tápot? Az áramkör (ez a javasolt), vagy a Pickit3? Ez utóbbi esetben jól van beállítva a tápfesz?
Következő: »»   9 / 25
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