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 / 24
(#) 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
Következő: »»   24 / 24
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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