Fórum témák
» Több friss téma |
Fórum » MPLAB kérdések
Szerintem valahogy belekavarodik a bankváltásokba, különösen az interrupt rutinban. Olvasd el a 9.5 fejezetet.
Nem tudom, szerintem a MPLAB szórakozik velem. Eddig 10-10szer csinálta. Most újraindítottam és nem bírom produkálni. V3.50 Linuxon. A 3.60 rosszabb. Amikor léptetném a debugolást akkor nem nem ugrik az aktuális sorra, nem jelöli sehogy.
Nem tudom, hogy az asm-nál van e optimalizálás, de ha van, akkor azt kapcsold ki.
Be lehet állítani azt hogy amikor a wd túlcsordul akkor felbukkanó ablakkal jelezze mint a Mplab 8-asban?
Ha olyankor jön az it, amikor pont a bank1-ben állítgatsz, a w és a status mentése a 0xA3 és 0xA2 regiszterekbe történik (0x23, 0x22 helyett), mivel csak utána váltasz bankot. A visszamentés viszont mindig a bank0-ból történik, ami valószínűleg az előző it adatai. Az adatlap 9.5 fejezete pont erről szól. Ezért javasolja, hogy a mentett regisztereket mindkét bankban létre kell hozni, azonos címre, hogy mindig oda kerüljön a mentés, ahonnan meghívták, plusz ment a 0 bankba is, hogy tudja honnan kell visszaállítani.
Itt a változók címében csak a bank a különbség, mindegy melyik bankból hívok késleltetést, abban a bankban fog végigfutni:
Ilyenkor ha a 0 bankban hivatkozok a wtreg1-re, a wtreg1T be fog írni, de olvasáskor is innen olvas, ezért nem okoz problémát. A lényeg, hogy lefoglaljam a helyét, ne kerüljön oda más változó.
Sziasztok!
Ismerkedem az MPLABX szimulátorával, de futtatva nem áll meg a beállított töréspontnál. Ezt az üzenetet kapom:
Mit rontok el? Idézet: „Mit rontok el?” Először is azt, hogy nem mutatsz képernyőképet az aktuális debuggolt programrészletről. Szerk.: ha volt módosítás a kódban, akkor ments és buildold a programot, csak utána futtatsd a debugot. A hozzászólás módosítva: Máj 7, 2017
Viszont az adatlap azt is írja, hogy az 0xA0 - 0xDF memória címzésekor a 0x20 - 0x5F részt éred el, vagyis úgymond már eleve tükrözve van.
Persze azért jobb a békesség.
Nem sok dolog derül ki belőle, azt gondoltam, elég a hibaüzenet.
Ha még nem próbáltad, akkor:
1. törölj minden breakpointot 2. kapcsold ki a debugot 3. mentsd el a kódot 4. fordítsd újra (build) 5. próbáld meg újra a debugot Ha minden kötél szakad, akkor újra létre kell hozni a projectet, lehet "beakadt" az MPLAB, én már jártam így.
Köszönöm a tippet!
Fél napja nyűglődök vele, de új projekttel még nem próbáltam
Illetve előtte még próbáld ki, hogy ha be van kapcsolva a Watchdog, akkor kapcsold ki, és próbáld meg úgy.
Mikor elhelyezem a töréspontot a sorszámra kattintva, már akkor hibát jelez.
Új projeknél is ez a helyzet. Valamilyen beállítási hiba lehet?
A while cikluson kívül is? Pl. a 17. sornál.
Illetve lefordul sikeresen a project? Nincs error? A hozzászólás módosítva: Máj 7, 2017
Definiáltál valahol egy LATA szimbólumot? A PIC12F675 -nek nincs LATA regisztere, csak GPIO és TRISIO van.
Igaz, ez így nem lehet probléma. És szimulátorban tényleg egyszerre változik mindkettő.
A Watches ablakba név szerint nem tudom felvenni a változót, de memóriacím szerint igen.
A projekt hibátlanul lefordul, PIC18F25K40 az eszköz, a LATA-t jól kezeli, a program jól működik.
Viszont amire eddig nem gondoltam, a projekt elérési útjában van egy ékezetes karakter. Ezt átírva már jól működik. Pedig a karakterkódolás is át van írva ISO-8859-2-re. MPLAB-nál ez nem okozott gondot. Nagyon köszönöm az ötleteket és a segítséget! Wezuv: hol lehet kikapcsolni az optimalizálást?
Szia!
1. Az elérési útban ne szerepeljen speciális karakter "a békesség végett" ( kötőjel az MPLAB-X-ben!), mert ezek tudnak érdekes hibákat produkálni! 2. A breakpoint biztos, hogy programsoron van és nem pl. egy változó deklarálásához vagy cimkéhez tetted ( ne adj isten elválasztó üres sorra !) ?!
A kötőjeles MPLAB-X mappát a rendszer kínálja fel.
Viszont egy "é" betű szerepelt a projekt elérési útjában. Már működik, de köszönöm a tippet. Idézet: „E:\aaa\MPLAB-X\szimulator1.X\main.c:14” Itt "é" nincs, az "MPLAB-X" egy "aaa" könyvtár alatt van, így szerintem nem kínálja fel a rendszer... Mindegy, lényeg, hogy működik ! A hozzászólás módosítva: Máj 8, 2017
Viszont itt van.
Szerk.: bár az "aaa" se működött neki, ez már nekem is zavaros. Mindegy, a lényeg, hogy működik. A hozzászólás módosítva: Máj 8, 2017
Nem frissítettem és nem láttam a monitoron, hogy Bővebben: Link , de a "speciális" karakterek sok "megmagyarázhatatlan" jelenséget tudnak produkálni:
egyszer lefordul, egyszer nem, egyszer jól működik, egyszer nem ugyanaz a program vagy programrészlet ( gondolom a windows háttérbeli folyamataitól függ, de ennek magyarázata "odaát van" ! ) !
Egyébként - bár ökölszabály hogy nem rakunk ékezetes karaktert mappa nevekbe ilyenkor - kicsit gáz, hogy az MPLABX-ben nem tudtak erre megoldást találni. Én ameddig csak lehet, kitartok az MPLAB v8.88-nál.
Nem csak ékezet, hanem pont, space, kötőjel( ez is volt!), stb. is kivétel !
Windows 1250-et használom, nincs ilyen gondom...
Nem pontosan értem, de a dolgok olyanok, amilyenek, nekünk kell idomulni, erőszakkal nem megyünk semmire...
Hát az MPLAB X engem is megőrjített ugyanígy egy magyar karakter miatt.
Ott állok egy hatsoros asm előtt és azon gondolkozom, mit nem állítottam be valahol a tízezer menüpontban. Tudok angolul, de a semmitmondó totálisan félreértelmezhető - vagy csak az én tudásommal nem értelmezhető - hibaüzeneteket így is utálom. Valahogy nem tűnt fel, hogy az egész projekt nem állt össze, ezért nincsenek memóriahivatkozások - és debug sem. Mondjuk, a Win1250-et kipróbálom. Köszönet az infóért. A hozzászólás módosítva: Máj 8, 2017
|
Bejelentkezés
Hirdetés |