Fórum témák
» Több friss téma |
Fórum » MPLAB kérdések
Elvileg mindegyik változót kellene látnod, ha változó. Ellenben néha nem jeleníti meg, ha úgy dönt, hogy nem aktuális éppen...
Köszönöm a tippet, de engem most azok az ősrégi fordítók érdekelnek csak, mert éppen azokat szeretném használni. A verzió kérdést úgy értettem, hogy a 9.83 jó lesz, vagy régebbi kellene választani, mert a 9.83 már tönkre volt fejlesztve?
A hozzászólás módosítva: Máj 3, 2017
Régen használni akartam a Hi-Tech-et, de nem nagyon tetszett, mert egy szorzással tele lett egy 16F627 ! . Biztosan megvan az okod, hogy a régieket használd, amit én nem ismerek, de a jövő biztosan X.
Sajnos nem tudom melyiket kéne, de talán a legújabbra tippelnék. A hozzászólás módosítva: Máj 3, 2017
Ciklusban bitshift + összeadás meg tud tölteni egy 16f-et? Mekkora számokat szoroztattál te azzal a szerencsétlen 16f-el ?
Sajnos sosem mutatja. A udata-val deklarált változókat mutatja, de mindegyiknek ugyanaz a címe a memóriában. Lehet hogy rosszul használom?
Most nincs ötletem. Ilyennel még nem találkoztam.
Nem értek az MPLabX-hez, de lehet, hogy globális változónak kellene deklarálni?
A kódot megmutatnád?
Ha mindig akarod látni, akkor igen, de a lokálisok megjelennek, ha "rajtuk" állítod meg a programot. A "sosem mutatja" nem erre utal...
A kód eleje a deklarációval:
#include "p12f675.inc" ;__CONFIG _FOSC_INTRCIO & _WDTE_ON & _PWRTE_ON & _MCLRE_OFF & _BOREN_ON & _CP_OFF & _CPD_OFF __CONFIG 0x1CC #define input GPIO,AN0 #define output GPIO,GP2 #define button_plus GPIO,GP3 #define button_minus GPIO,GP4 #define led GPIO,GP5 cblock 0x20 pwm_counter pwm_value status_saved work_saved; endc Mielőtt elindítom a szimulációt látszik a watches listában a két első változó, azonban elindulás után eltűnik és soha nem látszik a program folyamán.
Nekem akkor látszik egy nem globális változó, ha ott áll meg a debugg, ahol értéke van és érvényes, vagy ha nem fut a debugg. Elvileg a cblock-ban globális változót hozol létre, nem értem mi lehet a gond.
De csak C-t használok X alatt, a régi kis PIC-ekhez sima MPLAB-ot használok, így nem tudom...
Nálam elég érdekes dolgokat produkál az MPLAB X. pl:: a konfigurációs szó ban 2 bitnek nincs funkciója és ezért hiába állítom be a előre definiált változókkal össze éselve. Amikor ki akarom írni akkor a visszaellenőrzéskor elszáll az író mert az hiányzó két bit nem a datasheet szerinti értéket adja vissza. Ezért vontam ki az a két bitet és inkább hexában adom be a konfig szót.
Igen, a régi 8-assal nem volt ilyen gondom. Pontosabban: Úgy emlékszem, hogy valami olyat kellett csinálnom, hogy a kódot valami absolute-relatív állítgatást kellett csinálni a projekt indításakor, mert csak az egyik módon mutatta a cblockos változót. Restellem , de nem volt ez a dolog számomra teljesen tiszta, arra gondoltam a programfutás vezérlés átadás goto utasítások esetében jelenthette, hogy relatív vagy abszolút címmel dolgozzon, de csak tippeltem.
Ha nem megy CBLOCK-kal, akkor azt meg tudjátok mondani, hogy udata-val hogyan kell deklarálni a változókat assemblyben?
A hozzászólás módosítva: Máj 4, 2017
Az UDATA-val definiált változóknak nincs kezdőértéke, az UDATA_ACS változói az Access RAM területen helyezkednek el, a RES 1 azt jelzi, hogy a változó 1 byte-os. Nem használom ezeket, csak így olvastam a Kónya-féle könyvben ! A hozzászólás módosítva: Máj 4, 2017
Sajnos ilyen módon már probáltam, és mindig elszáll a fordító és fogalmam sincs miért:
Warning[207] /home/lenard/MPLABXProjects/emulator.X/emulator.asm 17 : Found label after column 1. (pwm_counter) Warning[207] /home/lenard/MPLABXProjects/emulator.X/emulator.asm 18 : Found label after column 1. (pwm_value) Warning[207] /home/lenard/MPLABXProjects/emulator.X/emulator.asm 19 : Found label after column 1. (status_saved) Warning[207] /home/lenard/MPLABXProjects/emulator.X/emulator.asm 20 : Found label after column 1. (work_saved) ... make[2]: *** [dist/default/production/emulator.X.production.hex] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2 "/opt/microchip/mplabx/v3.50/mpasmx/mplink" -p12f675 -w -m"dist/default/production/emulator.X.production.map" -z__MPLAB_BUILD=1 -odist/default/production/emulator.X.production.cof build/default/production/emulator.o MPLINK 5.08, LINKER Device Database Version 1.34 Copyright (c) 1998-2011 Microchip Technology Inc. Error - section '.udata' can not fit the section. Section '.udata' length=0x00000004 Errors : 1 nbproject/Makefile-default.mk:118: recipe for target 'dist/default/production/emulator.X.production.hex' failed make[2]: Leaving directory '/home/lenard/MPLABXProjects/emulator.X' nbproject/Makefile-default.mk:84: recipe for target '.build-conf' failed make[1]: Leaving directory '/home/lenard/MPLABXProjects/emulator.X' nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed BUILD FAILED (exit value 2, total time: 328ms)
Ez a könyv nagyon (Kónya-Kopják) jó, nem tudtok véletlenül hasonlót assemblyben???
A forrást is mutasd meg, különben találgatni kell.
Ha meg udatával sem megy deklaráld fix memóriacímre. Így akkor is láthatod, ha nem írja mellé a változó nevét. Szerintem ez a hiba a tabulátorok és enterek összejátszása. Esetleg töröljed a sorok közötti nem látható karaktereket. Van amikor teljesen vegyesen használom:
Íme a forrás csatolva, jelenleg udataval.
Idézet: Dr. Kónya Lászó: PIC mikrovezérlők alkalmazástechnikája „Ez a könyv nagyon (Kónya-Kopják) jó, nem tudtok véletlenül hasonlót assemblyben???”
Sajnos az equ-val sem látszik a változó a debug indításakor.
A File Registers ablakban sem? (Window/Pic Memory Views/File Registers)
A címke az első oszlopban legyen.
Átírtam így az elejét, a warning megszünt (Warning[207] /home/lenard/MPLABXProjects/emulator.X/emulator.asm 17 : Found label after column 1. (pwm_counter)
De a linker még mindig hibával elszál: Error - section '.udata' can not fit the absolute section. Section '.udata' start=0x00000020, length=0x00000004 Errors : 1 nbproject/Makefile-default.mk:118: recipe for target 'dist/default/production/emulator.X.production.hex' failed make[2]: Leaving directory '/home/lenard/MPLABXProjects/emulator.X' nbproject/Makefile-default.mk:84: recipe for target '.build-conf' failed make[1]: Leaving directory '/home/lenard/MPLABXProjects/emulator.X' nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed make[2]: *** [dist/default/production/emulator.X.production.hex] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2 BUILD FAILED (exit value 2, total time: 457ms)
Én sem bújtam át az adatlapot, de így lefordul. Azért a fordító üzeneteit le kellene ellenőrizni.
Átmásoltam egy az egyben, és igen lefordul, de sajnos továbbra sem jelennek meg a globalis registerek listában a változók, így nem is tudom azokat a watches-ba beletenni.
Újabb hiba. Az előző sem oldódott meg, de a fileregisters-nél legalább látom a változókat. A következővel találkozott e már valaki? gp3 vagy gp4 állapotváltozásra szeretnék megszakítást generálni ami néha megy is, néha meg kiváltja a watchdog-ot. Mi lehet a hiba?
|
Bejelentkezés
Hirdetés |