Fórum témák
» Több friss téma |
Fórum » MPLAB kérdések
Nagyon szépen köszönöm a választ.
Fene se gondolta volna hogy ilyen hibát tartalmaz a 877-es. Egy 1700 ledes kijelzőn ügyködöm. Oda kell a sok memória. Tizenéve mikor kezdtem programozgatni olvastam valahol erről a korlátról. A jelenség ezt juttatta eszembe. Örülök hogy tévedtem.
Ez nem hiba, adottság Erre elég a 14bites utasításhossz.
2 kB-on túl nem elég a sima goto/call, ahogy már gyoran is írta, be kell állítani a PCLATH-et is. De azért ez sem annyira bonyolult:
De még ennél egyszerűbben is lehet:
Az lcall és lgoto nem egy kontroller utasítás. hanem a fentieknek megfelelően több utasításra fordul. (beállítja a PCLATH-ot, majd sima call vagy goto) A hozzászólás módosítva: Ápr 14, 2022
Köszönöm szépen a segítséget.
A lcall és a lgoto használata nem egész megoldás, ha megszakítást alkalmazol. Ld. belinkelt cikk.
Csak a teljesség kedvérét itt egy lista azokról a speciális utasításokról, amit használhatsz a programban a jobb olvashatóság miatt, és hogy mire is fordul. Forrás
Egy projekt mentésekor létrehozott egy átláthatatlan/logikátlan könyvtárszerkezetet, üres könyvtárakkal. Ezt a jó szokását megtartotta, amíg próbálgattam. Huszonvalahány verzióig tartott a türelmem, utána az egész MicroChip vonalat ejtettem az új fejlesztésekben.
Ez vitathatatlanul szubjektív álláspont, elismerem, de vallásháborúba nem érdemes belemenni.
Köszönöm az infót. Igaz ebbe az ügyködésbe nem tervezek megszakítást. MAX7219 el oldom meg a mátrixokat. Ez elég jól leveszi a terhet a PIC-ről.
Köszönöm a linket. Ez hasznos lesz.
Az aktuális MPASM user guide-ot feltelepíti az MPLAB, itt találod:
c:\Program Files (x86)\Microchip\MPASM Suite X\docs\MPASM_MPLINK_User_Guide.pdf Inkább ezt olvasgasd.
Üdv. Véleményt szeretnék kérni.
Úgy terveztem hogy felosztom a memoria tartományt 4 részre: ORG0x4, ORG 0x800, ORG 0x1000, ORG 0x17FF Az elsőben lesz a program, a többiben pakolgatom az adatokat ahova kell. Csak akkor használok LCALL vagy LGOTO utasítást ha egy másik blokkban van dolgom. Úgy olvastam hogy a VEREM 12 bites, tehát a RETURN utasítás simán műkődik a blokkok között is. Kérdésem hogy jó e ez a terv? Például a negyedik blokkon belül kell e használni az LCALL utasítást vagy ott elég a CALL?
Szia!
Ha egyszer átmentél egy másik lapra, akkor a PCLATH már be kellett, hogy állítva legyen, azaz ott nem kell bántanod, amíg belül vagy! A visszaugrással nincs gond, viszont a PCLATH-ot se felejtsd el ilyenkor visszaállítani !
Sziasztok
MPLAB IDE 6.00 egészen jól működik. Egy gondom van (volt korábban is) Csinálok egy egyszerű programot (200 ms wait- alternate IO és ez loop-ban) a Logic Analisert viszont nem tudom nagyobb időléptékre rávenni. Így aztán a vízszintes vonalon kívül semmit nem látok (hol 5v, hol 0V). Interneten nem találtam semmit, pedig órákat bújtam hogyan lehetne csökkenteni a vízszintes felbontást? Van valakinek tippje? A hozzászólás módosítva: Máj 8, 2022
Szia!
Én a régi MPLAB alatt használtam, ott a memóriaméretet kellett megnövelnem, hátha itt is segít !
Sajnos maxon van.
10000 az 10 msec, a 4 MHz beállításnál. Ha 200 msec időzítést teszek bele (most pl. éppen ennyi van) akkor utána semmit nem látni az analyzer képernyőjén. Időalapú mérésnél pedig nem találtam meg azt, hogy az egy tick hosszát hol lehet megadni. A hozzászólás módosítva: Máj 8, 2022
Sziasztok!
Rég nem használtam az MPLABX-et. A korábban jól működő projektek fordításkor mind hibát jeleznek. Itt egy egyszerű próba, amin talán látszik mi a gond, de nem tudom hogyan lehet a hibát kijavítani. Köszönet!
Ha készítesz egy új "üres" hasonló projektet akkor az lefordul?
Jártam már én is úgy hogy "valami" elromlott, nem fordul t le, már nem emlékszem a hibaüzire. Új mappába csináltam új projektet, bemásoltam a forrásokat, hozzáadtam, és működött
Köszönöm a választ!
Azt hiszem, a pocesszor adatait nem találja, ezért felraktam a legújabb XC8-at és ez úgy tűnik megoldotta a problémát. Köszi még egyszer, jó éjt!
Az újonnan telepített XC8 működik, de minden projektnél külön meg kell adni a fordító include és proc mappák helyét.
Különben a mellékelt hibát kapom. Nem hagyta magát a megadott helyre telepíteni. Létezik erre valami egyszerű megoldás, beállítás? Köszi!
Szia!
Próbáld meg a Tools -> Options -> Embedded lap -> Build Tools fülön megadni az XC8 fordító helyét.
Köszönöm!
A fordító már a telepítésnél helyére került, de az include - proc mappák helyét sajnos csak minden projektnél egyenként tudom megadni. Talán Az MPLABX valamilyen config fájljában lehetne ezt beállítani, vagy újrarakni, amit szeretnék elkerülni.
Ez valamilyen új bug lehet a programban, nekem is ezt csinálja. Én kibekkeltem azzal, hogy billentyűkombinációt rendeltem az elérési útvonalhoz, így nem kell végigkattintgatnom, megmutatva neki a mappát.
MAKE fájl - MPLABX (v5.40), XC8 Assembler (pic-as v2.20):
Mivel sem Mekk mester, sem MAKE mester nem vagyok, így segítséget kérnék MAKE file módosítás ügyében. Mivel az egyes projekteknél az nbproject almappában egy eléggé komplett (azaz összetett) MAKE szerkezet lapul, és még sohasem nyúltam a mélyére, ezért nincs tapasztalatom, hogyan futtathatnék le egy forrás-generáló alkalmazást, amely néhány újragenerált forrásfájlt frissítene, mielőtt az assembler fordítása elkezdődne. Konkrétan: Egyes PIC-ek több USART-tal rendelkeznek, és a meghajtóprogram részük nagyban azonos, csupán a rutinok, az I/O regiszterek nevében, pár RAM változóban (és néhány apróságban) különböznek. Az ekvivalens részek egyetlen forrása egy .inm kiterjesztésű fájlban van, melyből egy mis.exe - általam készített (és igény szerint módosítható) - alkalmazás fordít át .inc kiterjesztésűre, az mplabx projekthez. Az átfordítás parancsai: mis.exe source@.inm /1 mis.exe source@.inm /2 Ez a két parancs állítja elő tehát a source1.inc és source2.inc fájlokat (a source helyett tetszőleges forrásfájl nevet alkalmazhatunk a parancssorban). A kérdés tehát: melyik MAKE fájlba mit kell beszúrnom, esetleg milyen fájlokat kell előállítanom, és hová, hogy a két parancs kézi lefuttatása helyett az átfordítás automatizált legyen?
A make-ben a fájlnév: kezdetű blokkok mondják meg, hogy az adott fájl előállítása melyik fájloktól függ, és alatta van, hogy milyen parancsokkal lehet előálítani az adott fájlt. A make annyit csinál, hogy egy függőségi gráfot épít a fájlokból és az időbélyegeikből látja, hogy a függőségi fában van-e olyan, amit újra kell csinálnia.
Szükséged lesz egy konfigurációs fájlra, amiben benne van, hogy milyen processzorra dolgozol. Ettől kell függenie a mis.exe kimeneteinek. Amikor ezt a beállítás fájlt átírod, akkor ennek folyományaként minden ami tőle függ, azt a make újra létrehozza: akarmi.inc: akarmi.inm konfig mis.exe akarmi.inm Ezután azt kell még beállítanod, hogy az akarmi.inc ott legyen függőségként minden olyan forrás fordítási lépésénél, ami függ tőle (ha tökéletes a make fájl, akkor ez a függőség már most is benne van, illetve .dep fájlként is benne lehetnek a függőségek között). És akkor azok is mind újra lesznek fordítva ha a konfig fájl változott.
Szerintem felesleges a make-ba belenyúlni, beállítható hogy fordítás előtt (és után) futtasson programot ami módosítja a forrást, és mivel ezzel megváltozik az adott fájl dátuma a make észre fogja venni amit kell....
Sziasztok!
Egyszerű gyorsbillentyű asm programot szeretnék MPLABX v4.05-el lefordítani és PICKIT-3 al feltölteni a tokba. Fordításnál hibákat kapok, azt hiszem ezt az asm feormátumot nem ismeri az MPLABASMX. Nem fordítottam még asm-et MPLABX-el. Merre keresgéljek?
Köszönöm szépen! Ezzel lefordul.
Hogy menjen az MPLABX-el, ahhoz miket kell átírni? |
Bejelentkezés
Hirdetés |