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   17 / 25
(#) Wezuv válasza szolen hozzászólására (») Máj 3, 2017 /
 
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...
(#) pajti2 válasza Wezuv hozzászólására (») Máj 3, 2017 /
 
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
(#) Wezuv válasza pajti2 hozzászólására (») 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
(#) pajti2 válasza Wezuv hozzászólására (») 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 ?
(#) szolen válasza Wezuv hozzászólására (») Máj 3, 2017 /
 
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?
(#) Wezuv válasza pajti2 hozzászólására (») Máj 3, 2017 /
 
Lebegőpontos szorzás volt.
(#) Wezuv válasza szolen hozzászólására (») Máj 3, 2017 /
 
Most nincs ötletem. Ilyennel még nem találkoztam.
(#) nedudgi válasza szolen hozzászólására (») Máj 3, 2017 /
 
Nem értek az MPLabX-hez, de lehet, hogy globális változónak kellene deklarálni?
A kódot megmutatnád?
(#) Wezuv válasza nedudgi hozzászólására (») Máj 3, 2017 /
 
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...
(#) szolen válasza Wezuv hozzászólására (») Máj 3, 2017 /
 
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.
(#) Wezuv válasza szolen hozzászólására (») Máj 3, 2017 /
 
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...
(#) szolen válasza Wezuv hozzászólására (») Máj 3, 2017 /
 
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.
(#) szolen válasza Wezuv hozzászólására (») Máj 3, 2017 /
 
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.
(#) szolen hozzászólása Máj 4, 2017 /
 
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
(#) kissi válasza szolen hozzászólására (») Máj 4, 2017 /
 
  1. UDATA
  2. VALT_1     RES 1
  3. VALT_2     RES 1
  4. VALT_3     RES 1
  5.  
  6. UDATA_ACS
  7. VALT_4     RES 1


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
(#) szolen válasza kissi hozzászólására (») Máj 5, 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)
(#) szolen válasza kissi hozzászólására (») Máj 5, 2017 /
 
Ez a könyv nagyon (Kónya-Kopják) jó, nem tudtok véletlenül hasonlót assemblyben???
(#) nedudgi válasza szolen hozzászólására (») Máj 5, 2017 /
 
A forrást is mutasd meg, különben találgatni kell.
(#) ktamas66 válasza szolen hozzászólására (») Máj 5, 2017 /
 
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:
  1. PWML            equ     0x134
  2. PWMH            equ     0x135
  3.                        
  4.         udata
  5. I2C_ARRAY       res TX_ELEMENTS ; array to write to, array memory size
  6. FAZIS           res     1
  7.  
  8.         CBLOCK 0x70                             ; set up in shared memory for easy access
  9.                 INDEX_I2C                       ; index used to point to array location
  10.                 DATA_I2C                        ; used to determine if it is first data byte           
  11.                 BSR_SAVE                        ; BSR mentése
  12.                 KTSTATUS                        ;állapotbitek
  13.                 MENU_STATUS                     ;állapotbitek
  14.                 ELO_STATUS                      ;állapotbitek
  15.                 count1
  16.         endc
(#) szolen válasza nedudgi hozzászólására (») Máj 5, 2017 /
 
Íme a forrás csatolva, jelenleg udataval.

emulator.asm
    
(#) icserny válasza szolen hozzászólására (») Máj 5, 2017 /
 
Idézet:
„Ez a könyv nagyon (Kónya-Kopják) jó, nem tudtok véletlenül hasonlót assemblyben???”
Dr. Kónya Lászó: PIC mikrovezérlők alkalmazástechnikája
(#) szolen válasza ktamas66 hozzászólására (») Máj 5, 2017 /
 
Sajnos az equ-val sem látszik a változó a debug indításakor.
(#) ktamas66 válasza szolen hozzászólására (») Máj 5, 2017 /
 
A File Registers ablakban sem? (Window/Pic Memory Views/File Registers)
(#) nedudgi válasza szolen hozzászólására (») Máj 5, 2017 /
 
A címke az első oszlopban legyen.
  1. ; Ford Fiesta MK6 üzemanyag fogyasztás minimalizálás
  2.  
  3. ; PIC12F675 Configuration Bit Settings
  4. ; Assembly source line config statements
  5. #include "p12f675.inc"
  6. ;__CONFIG _FOSC_INTRCIO & _WDTE_ON & _PWRTE_ON & _MCLRE_OFF & _BOREN_ON & _CP_OFF & _CPD_OFF
  7. __CONFIG 0x1CC
  8.  
  9. #define input                   GPIO,AN0                  
  10. #define output                  GPIO,GP2
  11. #define button_plus             GPIO,GP3
  12. #define button_minus            GPIO,GP4
  13. #define led                     GPIO,GP5
  14.                                        
  15.                                         ;cblock 0x20
  16.                                         udata
  17. pwm_counter res 1
  18. pwm_value   res 1
  19. status_saved    res 1
  20. work_saved      res 1
  21.                                         ;endc
  22.                                        
  23. ;--------------------------------------------------------------------
  24. boot       code       0
  25.  
  26.                                 goto    start
  27.                                 org     4
  28.                                 goto    interrupt
  29. beg            code
  30. start:                          clrwdt
  31.                                
  32.                                 bcf     STATUS,RP0
  33.                                 movlw   0x7
  34.                                 movwf   CMCON
  35.                                 movlw   b'10000001'
  36.                                 movwf   ADCON0
  37.  
  38.                                 bsf     STATUS,RP0
  39.                                 movlw   b'00011011'
  40.                                 movwf   TRISIO
  41.                                 movlw   b'01010011'
  42.                                 movwf   ANSEL
  43.                                 movlw   b'10000110'
  44.                                 movwf   OPTION_REG
  45.                                 bcf     STATUS,RP0
  46. ;--------------------------------------------------------------------
  47.                                 ;btfss  button+ ;statikus mód
  48.                                 ;call   calibrate1
  49.                                
  50.                                 ;btfss  button- ;dinamiks mód
  51.                                 ;call   calibrate2
  52.                                
  53.                                 ;btfss  STATUS,4
  54.                                 ;call   selftest
  55.                                
  56.                                 ;call   load_data
  57.                                
  58.                                 clrf    pwm_counter
  59.                                 bcf     INTCON,T0IF
  60.                                 bsf     INTCON,T0IE
  61.                                 bsf     INTCON,GIE
  62. ;--------------------------------------------------------------------
  63. again:                          clrwdt
  64.                                
  65.                                 movf    pwm_counter,F
  66.                                 btfss   STATUS,Z
  67.                                 goto    main10
  68.                                 call    anol
  69.                                 bcf     STATUS,RP0
  70.                                 bcf     STATUS,C
  71.                                 rrf     ADRESH,F
  72.                                 bsf     STATUS,RP0
  73.                                 rrf     ADRESL,F
  74.                                 bcf     STATUS,RP0
  75.                                 bcf     STATUS,C
  76.                                 rrf     ADRESH,F
  77.                                 bsf     STATUS,RP0
  78.                                 rrf     ADRESL,W
  79.                                 bcf     STATUS,RP0
  80.                                 movwf   pwm_value
  81. main10:                         goto    again
  82. ;--------------------------------------------------------------------
  83. interrupt:                      movwf   work_saved
  84.                                 swapf   STATUS,W
  85.                                 movwf   status_saved
  86.                                 bcf     STATUS,RP0
  87. ;--------------------------------------------------------------------                          
  88.                                 movfw   pwm_counter
  89.                                 subwf   pwm_value,W
  90.                                 btfss   STATUS,C
  91.                                 goto    inter10
  92.                                 bsf     output
  93.                                 goto    inter20
  94. inter10:                        bcf     output
  95. inter20:                        incf    pwm_counter,F
  96.                                 btfsc   STATUS,Z
  97.                                 incf    pwm_counter,F
  98. ;--------------------------------------------------------------------
  99. inter_end:                      swapf   status_saved,W
  100.                                 movwf   STATUS
  101.                                 swapf   work_saved,F
  102.                                 swapf   work_saved,W
  103.                                 bcf     INTCON,T0IF
  104.                                 retfie
  105. ;--------------------------------------------------------------------
  106. anol:                           bcf     INTCON,GIE
  107.                                 bcf     STATUS,RP0
  108.                                 bcf     PIR1,ADIF
  109.                                 bsf     ADCON0,GO_DONE
  110. anol1:                          btfss   PIR1,ADIF
  111.                                 goto    anol1
  112.                                 retfie
  113. ;--------------------------------------------------------------------
  114.                                 end
Valahogy így kellene.
(#) szolen válasza nedudgi hozzászólására (») Máj 5, 2017 /
 
Á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)
(#) ktamas66 válasza szolen hozzászólására (») Máj 5, 2017 /
 
Én sem bújtam át az adatlapot, de így lefordul. Azért a fordító üzeneteit le kellene ellenőrizni.

emulator.asm
    
(#) szolen válasza ktamas66 hozzászólására (») Máj 5, 2017 /
 
Úgy tűnik ott megjelenik a változás.
(#) szolen válasza ktamas66 hozzászólására (») Máj 5, 2017 /
 
Á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.
(#) szolen hozzászólása Máj 7, 2017 /
 
Ú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?
(#) nedudgi válasza szolen hozzászólására (») Máj 7, 2017 /
 
Hibaüzenet, figyelmeztetés van?
Következő: »»   17 / 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