Fórum témák
» Több friss téma |
Fórum
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?
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.
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.
Szia!
Próbáld meg a Tools -> Options -> Embedded lap -> Build Tools fülön megadni az XC8 fordító helyét.
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!
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!
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
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!
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
Szia!
Én a régi MPLAB alatt használtam, ott a memóriaméretet kellett megnövelnem, hátha itt is segít !
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!
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 !
Ü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?
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.
Köszönöm a linket. Ez hasznos lesz.
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.
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.
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
A lcall és a lgoto használata nem egész megoldás, ha megszakítást alkalmazol. Ld. belinkelt cikk.
Köszönöm szépen a segítséget.
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
Ez nem hiba, adottság
Erre elég a 14bites utasításhossz.
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.
Egy kis olvasnivaló.
Ha emlékeim nem csalnak, akkor a Mikroe, a Parsic és a Flowcode v5 ingyenes változata tartalmaz ilyen korlátozást.
Mi a baj az MPLAB X-szel? Mostanában azzal játszom, nekem úgy tűnik, abban is lehet programot írni igaz, a korábbi verziókat nem próbáltam.
Az MPLab nem tartalmaz korlátozást a program méretére. A PIC18F877 korlátairól gyoran kolléga megírta a tutit.
Ha MPLab X keretrendszert használsz, akkor nem szóltam, mert pár év folytonos próbálkozása után feladtam, abbahagytam a követését, mert rossznak tartom a koncepciót, a MicroChip pedig - szerintem - képes ilyen öngyilkos stratégiára. Mindentől függetlenül érdekel az a forrás, hol ilyen korlátot emlegetnek. A Mikronika magas szintü nyelvei tartalmaznak emlékeim szerint ilyen korlátot. A hozzászólás módosítva: Ápr 14, 2022
|
Bejelentkezés
Hirdetés |







! 