Fórum témák
» Több friss téma |
Fórum » MPLAB kérdések
Még mindig Debud módban fordítasz. A két tetején, középen a Debug módot állítds át Release -re.
Akkor jóvan' akkor!
Ékezetes betű és a szóköz még mindig ott van az elérési útvonalban! Még mindig debug módban van! A 2 include fájl legyen ott az asm fájl mellett!
Köszi, megvan, debug-ot el felejtettem át állítani.
Köszönöm még egyszer!!
Na, ennek örülünk!
Hp41C: Nálam egyébként debug módban is jól fordul le. Erről valami vélemény?
Release mód: Csak a forrásban szereplő kód kerül a kontrollerbe, a konfigurációs szóban (szavakban) a DEGUG bit nem aktív - az on chip debugger funkció tiltva.
Debug mód: A forrásban szereplő kódon kívül egy nyomkövető kód (Debugging Executive) is bekerül a kontrollerbe, a konfigurációs szóban (szavakban) a DEGUG bit aktív - az on chip debugger funkció engedélyezve. A kód kommunikál az MpLab rendszerben beállított nyomkövetővel (debugger), nélküle nem indul vagy nem fut rendesen.
Sziasztok.
Valaki nem tudna ajánlani valami könyvet, az mplab használatához? Az alapoktól szeretném tanulni, de idáig nem sikerült szerezni használható leírást.
Tudom hogy segít, meg töltöttem is le, csak arra gondoltam hátha valaki tud ajánlani valami konkrétat.
Az Mplab szimulátorba be lehet olyat állítani, hogy az INT lábra bizonyos időközönként megszakítást adjon? Manuálisan tudom, hogyan kell, de az nem jó nekem most.
Persze... A Stimulus--> Clock Stimulus fülön például tudsz ilyet megvalósítani !
Köszönöm, ez sikerült! Most A/D-t szeretnék szimulálni, nem feltétlen folyton változó értékkel, egy-egy rögzített értékkel is jó lenne, csak két csatornán.
Még egy kérdés: azt nem lehet valahogy nyomon követni, hogy a Timer1 hogyan számol?
Szia!
Van olyan lehetőség ( Register Injection, még nem használtam ! ), hogy egy-egy regiszterbe, adott órajelnél töltsön be egy-egy értéket, ez szerintem jó lehet!
Hogyne lehetne ! A View --> Watch menüben kiválasztod a megfelelőt !
Igen ez közbe nekem is eszembe jutott. Viszont nem a legjobb, mert ha anime módban nézem, a leggyorsabb fokozaton is egy örökkévalóság amíg túlcsordul és megszakításba megy, run módban meg nem látszik semmi, csak ha megállítom akkor tudom leolvasni a pillanatnyi értéket.
Van egy olyan eszköz is, hogy "breakpoint", az még a Te barátod ! Dupla kattintás az adott programsoron és normál ( gyors!) futás mellett ott fog megállni és megnézheted, amire kíváncsi vagy !
Nem tudja valaki, hogy, hogy lehetne kikapcsolni az MPLABX-ben a "start page"-t? Megőrjít, hogy indítom a programot és álandóan az az ökörség ugrik be elsőnek..
Sziasztok!
Eddig jónéhány apróbb projektemet microC-vel fejlesztettem... Most szeretném kipróbálni a MPLAB-ot is, kicsit komolyabb illetve csak a MicroChip csinálja. A mikroC-t csak feltettem a programból beállítottam a fusebiteket aztán annyi volt, most nagyon elvagyok veszve MPLAB-bal, kérlek segítsetek a nulláról, mit hogy telepíteni, fordító stb... PICKIT2-vel programozok. Előre is köszönöm a válaszokat! Üdv: Csaba
Szia!
Csak vedd ki a pipát alul, majd zárd be... Ha tudnád mit küzdöttem most érte, hogy megtaláljam neked ezt a lapot a kép kedvéért Elővarázsolni úgy lehet legközelebb, hogy a Window menüben rákattintasz a "Reset windows" menüpontra.
Ó mekkora egy ork vagyok... És tényleg ott van, majd kibökte a szememet.. Istenem... Kösz.
Sziasztok!
Az MPLABx IDE v2.2 illetve a legújabb v3.1-es verzióban is, Debugger módban a Program Counter random ugrál random helyre, anélkül, hogy bárki utasította volna rá. Például a PC a 0x0000->0x02A7->0x0001->0x0003 címeket járja be, pedig a main függvény első négy sorában csak változódeklarálás van... C18-as fordítót, és a beépített, szoftveres debuggert használom.
Tegyél inkább a main első - végrahajtható kódot is tartalmazó utasítására egy töréspontot, fordítsd le újra a programoz és indítrd el (run). Meg fog állni a töréspontnál.
A töréspontnál megáll, nem azzal van a baj. Az első blokk a mainben pár változó deklarálás, ami kell a programban, több sorban.
Például: void main() { int blablalba float blablalba char blablabla [...] } fgv1() { } fgv2() { } fgv3() { } [..] fgv23() { } fgv24() { } Rálép az int deklarálásra (tegyük fel, hogy PC=0x0000), majd elugrik az egész program vége felé egy függvényre, pl fgv23 (PC=0x03AF), majd visszaugrik mondjuk a char deklarálásra(PC=0x0003). Nem is vagyok biztos benne, hogy a floatról a későbbiekben tudomása van, hiszen azt a blokkot, amit tesztelnék (amiben szerepel) azt szépen úriasan átugorja, mint ha ott sem lenne. Pedig áll vagy 20-30 sorból.... és ugyanígy a mainben is ugrál össze vissza, a függvények törzsébe is teljesen random beugrik.. ?! :O A hozzászólás módosítva: Okt 12, 2015
Sziasztok!
Szeretnék programozni egy 16F1718-at. Ezt a picet a régi 8.92-es MPLAB nem ismeri, ezért feltettem az MPLABX 3.10 verziót, de evvel sem tudom programozni, mivel mindig azt írja megszakadt a kapcsolat a Pickit3-mal. A kapcsolás próbapanelen van, és egy darab ledból áll, a program le van fordítva hexbe. A Pickit 2.5 és a hozzá való programmal tökéletesen működik, tudom programozni. Kipróbáltam PICKIT3-mal MPLAB 8.92-ben ha 16F1788-ra van állítva szépen kiírja, hogy nem megfelelő a pic, tehát látja. Az MLABX mindig az alábbi hibát mutatja. Idézet: „A Pickit 2.5 és a hozzá való programmal tökéletesen működik, tudom programozni.” Akkor most mi is a kérdés?
Nos akkor egész előlről:
A C nyelvből lefordított program felépítése vázlatosan: Reset vektor: Ugrás az inicializáló kódra. Pd. c018i.o stb. Ebben elvégzi a legfontosabb műveleteket: stack (a paramétereké - nem a PC mentésére szolgáló) létrehozás, STATUS ill. RCON regiszter mentése (a reset oka kideríthető legyen). Meghívja a globális változók kezdőérték beállító rutinját, majd az egyes modulokét. Ezután meghívja a main() függvényt. Interrupt vektor(ok): Megszakítás kezelő rutinok. Törzs: A modulok kódja a szerkesztési állomány alapján. Minden modul kódja tartalmaz egy kezdőérték beállító részt, amivel a kezdőértékkel rendelkező változókat tölti fel. Minden függvény rutinja három részből áll: A lokális változók létrehozása a stack -en, kezdőértékük beállítása, a tényleges eljárás kódja és a lokális változól felszabadítása (visszatérési érték beállítása amennyiben azt a WREG -ben kell visszaadni). A debugger a kezdőérték beállítása szolgáló vagy tényleges kód első sorára ugrik, ha az eljárásba nyomkövetéssel lépünk be. Ehhez jön még az optimalizálás, ami az esetlegesen többször előforduló azonos kódokat kis rutinokba teszi és call / rcall utasítással hívja. Ebből adódik a látszólag rendezetlen ugrálás. Ha a C sorokra tennél töréspontot, akkor jobban lehetne követni a futást. Ha a futtatás egy eljárásban beállított törésponton megáll csak a globális változók, az abban az eljárásban deklarált lokális változók és paraméterek érhetők el a szimulátor ill. debugger számára.
PICkit3 és a MpLabX programmal minden "Connection Failed" után nyomj egy "Connerct" -et. Lesz belőle legalább négy-öt...
A hozzászólás módosítva: Okt 20, 2015
|
Bejelentkezés
Hirdetés |