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   19 / 19
(#) kissi válasza Wezuv hozzászólására (») Máj 9, 2017 /
 
Úgy értettem, hogy mivel a programok alapvetően angol nyelvterülettel kapcsolatban készülnek,
jobb ezt megszokni, mint bármilyen kódtábla helyes implementációjában bízni !
De mindenki maga dönt !
(#) Wezuv válasza kissi hozzászólására (») Máj 9, 2017 /
 
Ebben egyetértek, de követelmény, hogy a megjelenített szövegek megfelelőek legyenek, amit csak megfelelő kódolás beállításával lehet csak elérni. A TFT meghajtómhoz írt Printek se működtek jól először, de a windows 1250 beállítás megoldotta a problémát (legalább is nálam, az adott esetben).
A PC-n is agyrém a sok kódtábla! Nem szabad asc, vagy chr-t használni (vagy ezeknek megfelelő kódváltókat más prognyelven), mert hibás lesz a kapott kód más nyelvterületre állított PC-n (pl. soros porton kapott stringek bináris értelmezésénél). Ezért inkább megfelelő kódváltásokkal és kódkörnyezet beállításokkal kell operálni, ami elég macerásnak tűnik először, de később kifizetődő. Egy nagy nevű cég programja is ilyen hibát tartalmazott és tönkretette a több milliós készülék programját. Szóval ez egy nagy szívás, de meg kell valahogy oldani.
(#) kissi válasza Wezuv hozzászólására (») Máj 9, 2017 /
 
A megjelenített szöveg az más, ott lehet "bármilyen" karakter, az elérési utakra, címkékre, változónevekre szerettem volna a figyelmet felhívni...
(#) Bell hozzászólása Máj 9, 2017 /
 
Töröltem a korábbi MPLABX-et és újraraktam. Hozzá XC8-at, MPLABX Code Configurator plugin-t.
Így most már sem a szimulátor, sem a PicKit3 gombjai nem aktívak. A PicKit tápfesz be van kapcsolva.
Kezdek kiszeretni ebből az MPLABX- ből

Wezuv: köszönöm, de én nem találok gcc-t. Lehet, hogy azt külön kell felrakni?

pickit.jpg
    
(#) Wezuv válasza Bell hozzászólására (») Máj 9, 2017 /
 
Nem, bocs, csak én XC32-t használok. Neked az XC8 compiler alatt kéne találnod, valamelyik lenyílónál. Ott kell beállítani a 0-s szintet amíg fejlesztesz.

Opimiz.png
    
(#) Bell válasza Wezuv hozzászólására (») Máj 9, 2017 /
 
Nekem az XC8 free verzió van fenn és persze lejárt már a 60 nap. Ezért nem is kínálja fel az optimalizálást, így nem volt értelme a kérdésemnek, bocs.
(#) Wezuv válasza Bell hozzászólására (») Máj 9, 2017 /
 
Érdekes, pedig akkor szokott ilyet csinálni, amikor kioptimalizálja a sort. Az a baj, hogy nehezen hiszem el, hogy ennyire nem működik ez nálad, miután nekem jól működik. Ha lesz egy kis időm, megnézem mit művel a kódod...
(#) Hp41C válasza Bell hozzászólására (») Máj 9, 2017 /
 
Lefordul egyáltalán a programod? A múltkor még definiálatlan szimbólumra utaló hibajelzést kaptál. A 12F675 -nek nincs LATA regisztere.
(#) Bell hozzászólása Máj 10, 2017 /
 
Wezuv, HP41C:
Egy régi projektben használt PIC18F2321-et szeretnék egy sokkal olcsóbb PIC18F25K40-el kiváltani. Erre kellett az MPLABX, mert az MPLAB ezt már nem ismeri.
A projekt útvonalában volt egy "é" karakter és a karakterkódolás ISO-8859-2 volt. Lefordult így is, futott a program is, de a szimulátornál a töréspont elhelyezésekor hibát adott (Not resolvable to a valid memory address).
Aztán felraktam az újabb MPLABX-et, de azzal csak a tökölés volt, mert sem a PicKit3, sem a szimulátor nem működött.
Visszatettem a 3.50-öt és alapvetően kezdek képben lenni a használatával. (megtaláltam az optimalizálás kikapcsolását is)
Már csak egy TIMER0 prioritásos megszakítással van gondom.
Köszönöm mindenkinek a segítséget és az útbaigazítást.
(#) Bell válasza kissi hozzászólására (») Máj 10, 2017 /
 
Igazad van, figyelmetlen voltam. Hiba volt kijavítani az elérési útba szereplő ékezetet és persze nincs kötőjel az X előtt.
Ez félreértésre adhatott okot.
(#) Hp41C válasza Bell hozzászólására (») Máj 10, 2017 /
 
A PIC18F25K40 még nagyon új típus, még az sem derült ki, hol van benne hiba. Gondolom a szimulátora sem tesztelt még rendesen...
(#) Bell válasza Hp41C hozzászólására (») Máj 11, 2017 /
 
Az ár volt az elsődleges szempont. A szimulátort ritkán használja az ember, mert többnyire azt végzi a program, ami le van írva.
De ennél a típusnál nem tudok még eligazodni a TIMER0 dolgaiban.
(#) kissi válasza Bell hozzászólására (») Máj 11, 2017 / 1
 
Idézet:
„A szimulátort ritkán használja az ember, mert többnyire azt végzi a program, ami le van írva.”
Sőt, mindig... csak az nem biztos, hogy találkozik a szándékkal !


szerk.: Szerintem érdemes megbarátkoznod a szimulátorral, mert nagyon nagy segítség hibakereséskor ( persze a logikai hibáknál!) és a tanuláskor, pláne a kevésszer írható típusoknál !
A hozzászólás módosítva: Máj 11, 2017
(#) Hp41C válasza Bell hozzászólására (») Máj 11, 2017 /
 
Pontosan a megszakítást lehet jól vizsgálni a szimulátorral. Egy-egy töréspont a két megszakítási belépési pontra. Ezek után elindítani a programot, megnézni, hogy fölprogramozza a megszakítási rendszert, megáll-e a program valamelyik törésponton. Megvizsgálni, hogy a szándékaink szerint szinten állt-e meg. Nyomon követni, hogy ez a szint lekezeli-e.

Egy PIC10F322 -re írt programnál nem jött meg a szimulátorban a megszakítás, de a kontrolleren futott a program.
(#) Bell hozzászólása Máj 11, 2017 /
 
A szimulátor remek találmány, általában nem is volt vele gondom.
Mostanáig. Nálam is a kontrolleren fut a program, de a szimulátornál nem áll meg.
Pedig az optimalizálás kikapcsolva, hiba nincs sem fordításkor, sem a szimulátornál.
Igaz stimulust nem állítottam be, de szerintem nem kell.
(#) diablo hozzászólása Jún 13, 2017 /
 
Sziasztok!
MPLAB X-ben a Template Manager-ben (Tools -> Templates) lévő általam készített sablonok elérési útvonalát át lehet valahol állítani? Mert jelenleg a
  1. C:\Users\felhasználó\AppData\Roaming\mplab_ide\dev\v3.25\config\Templates
helyre menti őket ami nem valami barátságos hely számomra.
(#) sandor58 hozzászólása Jan 14, 2018 /
 
Hogyan kell rábírni az MPLABX-et, hogy assemblerben legyen hajlandó működni?
(Eddig ATMELSTUDIO-val dolgoztam, de ezzel nem bírok)
(#) vilmosd válasza sandor58 hozzászólására (») Jan 14, 2018 /
 
Szerintem a project varazslo felajanlja a MPASM-et is.
(#) Bell válasza sandor58 hozzászólására (») Jan 14, 2018 /
 
Ez menet közben is lehetséges.

2.jpg

3.jpg
   
(#) sandor58 válasza Bell hozzászólására (») Jan 15, 2018 /
 
Kösz az eddigieket, de:
Lehet, hogy a telepítésnél hagytam ki v.mit, de nem választható ki az ASM30.
Le kellene tölteni v.mit? pl.mpasm... ha igen, honnan? Microchip-en nem találtam használható állományt (PIC24Fxx-et próbálnék...)

a.jpg
    
(#) Bell válasza sandor58 hozzászólására (») Jan 15, 2018 /
 
Talán ez segít: Bővebben: Link
(#) sandor58 hozzászólása Jan 15, 2018 /
 
Kösz a segítséget, feladom. Ilyen moslék szoftvert rég láttam.
Tiszteletem annak, aki tudja kezelni. BYE.
(#) oregharcos hozzászólása Szept 4, 2018 /
 
Sziasztok! Már hetek óta szenvedek egy kis programmal. PIC12F675-re szeretnék beilleszteni egy ASM-ben megírt programot, ez PIC16F84-re lett írva. C-vel is próbálkoztam de sikertelenül.
Ez úgy működik, hogy gomb lenyomása után indul egy 30secundomos időzítés, majd ha
letelik, egy 2secundomos fut le és vár a következő gombnyomásra.
MPLAB v7.60-ban lett írva és azzal megy a PIC16F84-el.
Kérlek benneteket, segítsetek, hogy hogyan tudom PIC12F675-re átírni?
Segítségeteket előre is köszönöm!

  1. #include <p16F84A.inc>  ;betöltjük a P16F84A.INC fájlt
  2. __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
  3.  
  4.  
  5.  
  6. cblock 0x20     ;lefoglalunk 6bajt memóriaterületeket az időzítéseknek
  7. d1           
  8. d2           
  9. d3           
  10. d4           
  11. d5
  12. d6
  13.        
  14. endc       
  15.  
  16. #define   bank0     bcf       STATUS,RP0   ;definiáljuk a bankok közötti
  17.                                            ;váltások utasítását, ha RP0
  18.                                            ;Status regiszter 0, akkor a 0-s bankban,
  19.                                            ;ha pedig egy, akkor az 1-es bankbanvagyunk
  20.  
  21. #define   bank1     bsf       STATUS,RP0    ;bcf= bit clear file register, bitet törlünk,
  22.                                                              ;bsf= bit set file register,
  23.                                                              ;bitet (1-est) állítunk be
  24.  
  25.  
  26. Pinset:                         
  27.                                                         
  28. bank1                  ;ugrás az egyes bankba
  29.         clrf    TRISA                ;ha TRISA összes bitje 0,
  30.                                          ;akkor PORTA (RA lábak) kimenetként fognak funkciónálni
  31.         movlw   0xCF        ;megadjuk a 0xCF, vagyis binárisan 11001111 értéket,
  32.                                          ;hogy RB0, RB1, RB2 és RB3 bemenet, RB4,
  33.                                          ;RB5 kiemenet majd az RB6 és RB7 bemenetként fog funkcionálni
  34.         movwf   TRISB       ;ezt az értéket bevisszük a TRISB regiszterbe.
  35.                                  
  36.         bank0                    ;visszaugrunk a 0-ás bankba
  37.  
  38. Main                    
  39.          clrf    PORTA            ;Töröljük a PORTA kimenetét,
  40.                                        ;hogy ne legyen rajta zavaró jel
  41.        
  42.         btfsc   PORTB,1         ;Ha nem nyomták, akkor ugrik a következő sorra.
  43.                                      ;Ha megnyomták, akkor kihagyja az utána lévő sort,
  44.                                      ;tehát a következő sort akkor ugorja át,
  45.                                      ;ha a PORTB 1- bitje 0.
  46.  
  47.         goto    $-1       ;ha nem nyomták meg, visszaugrunk, hátha most megnyomták
  48.        
  49.         btfss   PORTB,1       ;megnyomták a gombot, most figyeljük, hogy el is engedik-e.
  50.                  
  51.        goto     $-1         ;még mindig le van nyomva, visszaugrunk és megnézzük elengedték-e
  52.       movlw     b'00001'  ;elengedték a gombot, ezért RA0-ra logikai egyest állítunk be
  53.       movwf     PORTA     ;ezt az értéket kimozgatjuk a PORTA-ra, így mivel csak az RA0 értéke 1-es,
  54.                                ;így csak ott fog kigyulladni a led.
  55.  
  56.         call        Delay              
  57.         movlw      b'00010'
  58.         movwf      PORTA      ;                                   
  59.         call        Delay_1min               
  60.         goto        Main
  61.  
  62. ; Delay = 30 seconds
  63.  
  64. Delay:
  65.                         ;29999996 cycles
  66.         movlw   0x11
  67.         movwf   d1
  68.         movlw   0x66
  69.         movwf   d2
  70.         movlw   0x42
  71.         movwf   d3
  72. Delay_0
  73.         decfsz  d1, f
  74.         goto    $+2
  75.         decfsz  d2, f
  76.         goto    $+2
  77.         decfsz  d3, f
  78.         goto    Delay_0
  79.  
  80.                         ;4 cycles
  81.         goto    $+1
  82.         goto    $+1
  83.         return
  84.  
  85. ; Delay = 2 seconds
  86.  
  87.  
  88. Delay_1min:
  89.                         ;1999996 cycles
  90.         movlw   0x11
  91.         movwf   d4
  92.         movlw   0x5D
  93.         movwf   d5
  94.         movlw   0x05
  95.         movwf   d6
  96. Delay_1
  97.         decfsz  d4, f
  98.         goto    $+2
  99.         decfsz  d5, f
  100.         goto    $+2
  101.         decfsz  d6, f
  102.         goto    Delay_1
  103.  
  104.                         ;4 cycles
  105.         goto    $+1
  106.         goto    $+1
  107.         return
  108. end







[/code][/code]
(#) Hp41C válasza oregharcos hozzászólására (») Szept 5, 2018 / 1
 
A 16F84(A) 18 lábú PORTA és PORTB portokkal, a 12F675 8 bábú és GPIO porttal.
Át kell alakítani a kapcsolást. A 12F675 GP5 és GP4 lába lehet az oszcillátor, de mehet belső oszcillátorról is. A GP3 csak bemenet vagy a MCLR lehet, a GP2..0 lehet kimenet is.
A #include sorban javítani kell a típust: #include <p12F675.inc>, át kell írni a __config sort is.
Ehhez a <MpLab telepítési mappa\MPASM Suite\p12F675.inc> ad mintákat.
A TRISA ill. TRISB helyett a TRISIO, a PORTA ill. PORTB helyett a GPIO regisztereket kell használni.
(#) oregharcos válasza Hp41C hozzászólására (») Szept 5, 2018 /
 
Szia Hp41C! Nagyon köszönöm a gyors választ, a héten megpróbálom átírni!
(#) thomato hozzászólása Szept 6, 2018 /
 
Sziasztok!
Eddig csak arduinoval szórakoztam egy keveset, de ez a pic kifogott rajtam.
Megépítettem ezt, de nem működik. A pic be egy tl866 programozóval írtam be a hex fájlt, ami a csomagban volt. Hibajelzés nincs. A config bitekre gyanakszok.
A forráskódban ez van:
  1. __CONFIG        _MCLRE_OFF & _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT  ;Internal osc.

A programozó a hex betöltése után a képen lévő pipákat rakja ki. Ha átjavítottam, úgy se működött.
Gondoltam újrafordítom, de az mplab v8.92 nem tudja értelmezni az egyik fájlban lévő
  1. if      ($ & 255) > (256-(KEY_TABLE_LENGTH + 5))   ; it'll cross a page boundary
kifejezést. (Operand contains unresolvable labels or is too complex)
A fordító verziója nem stimmel, vagy a kód?

at2xt.jpg
    
(#) bbb válasza thomato hozzászólására (») Szept 6, 2018 /
 
Vagy belefutottál abba, hogy az OSCCAL elmászott a pic12f629-ből. PICKit2-vel újra lehet generáltatni és mennie kellene.
(#) thomato válasza bbb hozzászólására (») Szept 7, 2018 /
 
Arról azt írják a fórumban, hogy nem számít, nem kényes rá, hogy pontos legyen.
Nekem az nem világos, hogy akkor a config bitek bekerülnek e a hex fájlba, és onnan helyesen állítja e be az égető?
Illetve miért nem fordul le az asm program?
(#) zenetom hozzászólása Pé, 20:13 /
 
Sziasztok,
Újraraktam a gépet (Win7, x64), a PICkit3 tökéletesen működött a régi MPLAB (v8.8), és MPLABX alól is. Újrarakás után azonban csak MPLABX alól akar működni, a régi MPLAB (v8.88) nem látja.
Járt már valaki így?
(#) Wezuv válasza zenetom hozzászólására (») Pé, 20:44 /
 
Nem 100, de mintha külön drivere lenne. A telepedett könyvtárban, de nem emlékszem pontosan, régen volt...
Következő: »»   19 / 19
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu