Fórum témák

» Több friss téma
Fórum » MPLAB kérdések
 
Témaindító: Thomas10100, idő: Nov 27, 2005
Lapozás: OK   24 / 25
(#) llaczo hozzászólása Ápr 14, 2022 /
 
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.
(#) moltam válasza llaczo hozzászólására (») Ápr 14, 2022 / 1
 
Ez nem hiba, adottság Erre elég a 14bites utasításhossz.
(#) majkimester válasza llaczo hozzászólására (») Ápr 14, 2022 /
 
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:

  1. pagesel cimke
  2.     call cimke
  3.  
  4.     pagesel cimke2
  5.     goto cimke2


De még ennél egyszerűbben is lehet:

  1. lcall cimke
  2.     lgoto cimke2


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
(#) llaczo válasza majkimester hozzászólására (») Ápr 14, 2022 /
 
Köszönöm szépen a segítséget.
(#) Hp41C válasza llaczo hozzászólására (») Ápr 14, 2022 /
 
A lcall és a lgoto használata nem egész megoldás, ha megszakítást alkalmazol. Ld. belinkelt cikk.
(#) majkimester válasza llaczo hozzászólására (») Ápr 14, 2022 /
 
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

  1. TABLE 17:  PIC16CXX SPECIAL INSTRUCTION MNEMONICS
  2.  
  3.            Name               Mnemonic       Equivalent       Status
  4.                                             Operation(s)            
  5.  Clear Carry                CLRC          BCF      3,0           -  
  6.  Clear Digit Carry          CLRDC         BCF      3,1           -  
  7.  Set Digit Carry            SETDC         BSF      3,1           -  
  8.  Clear Zero                 CLRZ          BCF      3,2           -  
  9.  Set Zero                   SETZ          BSF      3,2           -  
  10.  Skip on Carry              SKPC          BTFSS    3,0           -  
  11.  Skip on No Carry           SKPNC         BTFSC    3,0           -  
  12.  Skip on Digit Carry        SKPDC         BTFSS    3,1           -  
  13.  Skip on No Digit Carry     SKPNDC        BTFSC    3,1           -  
  14.  Skip on Zero               SKPZ          BTFSS    3,2           -  
  15.  Skip on Non Zero           SKPNZ         BTFSC    3,2           -  
  16.  Test File                  TSTF f        MOVF     f,1           Z  
  17.  Move File to W             MOVFW f       MOVF     f,0           Z  
  18.  Negate File                NEGF f,d      COMF     f,1              
  19.                                           INCF     f,d           Z  
  20.  Add Carry to File          ADDCF f,d     BTFSC    3,0              
  21.                                           INCF     f,d           Z  
  22.  Subtract Carry from File   SUBCF f,d     BTFSC    3,0              
  23.                                           DECF     f,d           Z  
  24.  Add Digit Carry to File    ADDDCF f,d    BTFSC    3,1              
  25.                                           INCF     f,d           Z  
  26.  Subtract Digit             SUBDCF f,d    BTFSC    3,1              
  27.  Carry from File                          DECF     f,d           Z  
  28.  Branch                     B k           GOTO     k             -  
  29.  Branch on Carry            BC k          BTFSC    3,0              
  30.                                           GOTO     k             -  
  31.  Branch on No Carry         BNC k         BTFSS    3,0              
  32.                                           GOTO     k             -  
  33.  Branch on Digit Carry      BDC k         BTFSC    3,1              
  34.                                           GOTO     k             -  
  35.  Branch on No Digit Carry   BNDC k        BTFSS    3,1              
  36.                                           GOTO     k             -  
  37.  Branch on Zero             BZ k          BTFSC    3,2              
  38.                                           GOTO     k             -  
  39.  Branch on Non Zero         BNZ k         BTFSS    3,2              
  40.                                           GOTO     k             -  
  41.  Call across page boundary  LCALL k       BCF 3,5 or BSF 3,5        
  42.                                           BCF 3,6 or BSF 3,6        
  43.                                           CALL     k
(#) nedudgi válasza Bakman hozzászólására (») Ápr 14, 2022 /
 
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.
(#) llaczo válasza Hp41C hozzászólására (») Ápr 14, 2022 /
 
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.
(#) llaczo válasza majkimester hozzászólására (») Ápr 14, 2022 /
 
Köszönöm a linket. Ez hasznos lesz.
(#) majkimester válasza llaczo hozzászólására (») Ápr 14, 2022 /
 
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.
(#) llaczo hozzászólása Ápr 16, 2022 /
 
Ü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?
(#) kissi válasza llaczo hozzászólására (») Ápr 16, 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 !
(#) llaczo válasza kissi hozzászólására (») Ápr 16, 2022 /
 
Köszönöm. erre nem gondoltam.
(#) gyoran hozzászólása Máj 8, 2022 /
 
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
(#) kissi válasza gyoran hozzászólására (») 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 !
(#) gyoran válasza kissi hozzászólására (») Máj 8, 2022 /
 
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
(#) Bell hozzászólása Nov 17, 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!
(#) pipi válasza Bell hozzászólására (») Nov 17, 2022 / 1
 
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
(#) Bell válasza pipi hozzászólására (») Nov 17, 2022 /
 
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!
(#) Bell hozzászólása Nov 19, 2022 /
 
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!
(#) zenetom válasza Bell hozzászólására (») Nov 19, 2022 / 1
 
Szia!
Próbáld meg a Tools -> Options -> Embedded lap -> Build Tools fülön megadni az XC8 fordító helyét.

xc8.png
    
(#) Bell válasza zenetom hozzászólására (») Nov 19, 2022 /
 
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.

inc-proc.jpg
    
(#) Bakman válasza Bell hozzászólására (») Nov 19, 2022 / 1
 
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.
(#) Bell válasza Bakman hozzászólására (») Nov 19, 2022 /
 
Köszönöm!
(#) tcs52 hozzászólása Jan 12, 2023 /
 
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?
(#) asch válasza tcs52 hozzászólására (») Jan 12, 2023 /
 
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.
(#) pipi válasza tcs52 hozzászólására (») Jan 12, 2023 /
 
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....

Névtelen.png
    
(#) Bell hozzászólása Feb 27, 2023 /
 
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?
(#) pipi válasza Bell hozzászólására (») Feb 27, 2023 / 1
 
Próbáld mplab8.xx verzióval...
(#) Bell válasza pipi hozzászólására (») Feb 27, 2023 /
 
Köszönöm szépen! Ezzel lefordul.
Hogy menjen az MPLABX-el, ahhoz miket kell átírni?
Következő: »»   24 / 25
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem