Fórum témák
» Több friss téma |
Még soha nem volt ilyen gondom az MPLAB X-szel, bár én nem használok bootloadert, és az írást is MPLAB X alatt végzem PICkit3-mal. Esetleg a Project Properties-ben van valami rosszul beállítva nálad.
Például a pipát vedd ki innen!
icserny: Ohh ezen már rég túl vagyok..
usane: Csatoltam képeket, nem találtam ilyen menüpontot.. Zsora: Igen pont ezekkel próbáltam én is, de még a hex exportálással is próbáltam. Minden kép kiírja, hogy debug információkat tartalmaz a kód. Bootloadernél a gyári procdefs.ld fájt használom, így a bootloader miatt lefoglalt területre nem ír. Csatolom, a kérdéses fájlt is.. Teszt kód:
Idézet: „#pragma config DEBUG = ON” Itt a probléma.
Igen erre már én is gondoltam, de azt hittem ez csak a Debug csatlakozóra vonatkozik, nem a fordítás módjára.. Kipróbálom..
Igen e miatt írta ki azt a szöveget. Most már nem írja ki, de a bootloaderbe betöltve sajnos még mindig nem működik a program.. Érdekes mert ugyan ezt a programot lefordítva a sima MPLAB IDE-vel simán működik... A hozzászólás módosítva: Jún 15, 2016
Mást nem tudok mondani, nekem bajt ott kondi még nem okozot.
A hozzászólás módosítva: Jún 15, 2016
Uraim, valaki tud küldeni nekem egy lefordított hex fájlt amiben egy az RE2 bit-re egy LED villogtató program van lefordítva?
Akár a fentebb írt programom átalakításával. Odáig jutottam, hogy most csak, akkor fut le a fentebb linkelt program, ha a bootloadert betöltöm és azzal töltöm fel azt a programot amit a régebbi MPLAB IDE kerettel fordítok le.. Nem értem mi lehet a gond, és kezd felbosszantani.. Előre is köszi.. (MPLAB X-et szeretnék áttérni, de úgy fest nem vagy csak nehezen megy)
Tipp:
MPLAB 8-cal és X-szel is generálj egy .hex állományt és hasonlítsd őket össze (szövegesen)! Ha nem használsz bootloadert akkor működik a program? Jó helyre lett fordítva a program?
Nyugodtan odamehet a kondi is, de a szoftveres prellmentesítés sem ördöngősség. Elrakod a legutolsó állapotot, és figyeled, hogy 3 egymás utáni olvasásban is az új jelszint érkezett-e. Ha igen, akkor átírod a virtuális érzékelést. Nagyon ritka eset az olyan még a 16f-eken is, hogy ne jusson ram +3 bitnyi statikus adatnak.
Bootloader nélkül nem megy a program, akár melyikbe fordítom le.
Vagy hibás a programom amit írtam és azért nem megy, vagy valamit nagyon benézek és nincs beállítva. Esetleg a regiszterek nincsenek jól beállítva.. Próbáltam az USB kikapcsolásával is, mert láttam, hogy tán az alapból nincs teljesen kikapcsolva. Bootloaderrel is csak akkor megy, ha a régi MPLAB IDE-vel fordítom le. Egyelőre nem értem mi lehet a problém..
Gondolom a panelon ki van vezetve az ICSP debug-olj rá, hogy mi történik nálam a debug segített rá(nem egyszer), hogy mért nem működik a PIC-be a program.
A hozzászólás módosítva: Jún 15, 2016
Köszi, a program futott, eddig is, csak meg kell szokjam a 80MHz-et, marha gyors és egyelőre nincs delay().
Viszont továbbra sem működik akkor, ha MPLAB X-el fordítom le és Bootladerrel töltöm fel a programot. Ha a régi MPLAB IDE-vel akkor gond nélkül megy.. Nem értem mi lehet ez... Úgy gondolom, hogy az X valahogy piszkálja a memória területet. Viszont nincs linker állomány, amit meg lehetne nézni.. Ez a procdefs.ld állomány van, ami érdekes, de egyelőre nem tudom mennyire kell, mert MPLAB IDE-nek az sem kell, hogy működjön.. Érthetetlen.. Még egy kicsit kínlódok az X-el aztán, ha nem akar menni, akkor megkeresem az uninstall ikonját.
De ha az X-el rakod rá a programot ICSP-n keresztül akkor nem megy vagy csak a bootloaderen keresztül nem megy, már megkavarodtam mikor megy mikor nem?
A delay-re: A SYS_CLK ami a "proci fel jut freki" / 2 a 8 biten FOSC-nek becézett. Nálad ha jól értem akkor 80Mhz / 2.
A hozzászólás módosítva: Jún 15, 2016
Most odáig eljutottam, hogy X-el fel tudom programozni és fut is a program.
De ha beletöltöm a Bootloadert és azzal töltöm be ugyan azt a progit már nem megy. Próbáltam gyári CDC demót, azt fel tudtam tölteni, de sajátot amit X-ben fordítottam azt nem. Sima MPLAB-al fordítva működik. A baj az, hogy vagy X vagy sima IDE-ben fejlesztek, egyszerre a kettő nem lehet. Mivel az X-a frissebb és itt is ezt ajánlottátok, próbálnék át állni rá. MPLAB X PRO regisztrált verzió.
Nem kötekedés, de nem a fordítóból van pro standard meg free?
Nem tudom, hogy a PIC32-nél (gondolom van)van-e külön boot flash terület, de nem kell esetleg a reset vagy egyéb vektort arrébb rakni a bootloader miatt? Valamint a program amit feltöltesz bootloaderen keresztül az átírja a config biteket?
Sziasztok
Hogy tudom a PIC18F46k22 belsö RCjét bekapcsolni??? MikroC be írom
Igen igazad van, kifelejtettem XC és XC32 fordítóm PRO, regisztrált verzió.
Ezt azért írtam, be hogy hátha érdekes és hogy esetleg a free verzió korlátozna le. No pont ezt gondolom én is. PIC18-nál át kellett helyezni pár vektort, itt is van ilyen, de amit nem értek az az, hogy miért működik az a program amit MPLAB IDE-ből fordítok és miért nem amit X-el. Mind kettő programban ugyan az van, mert az egész forrást másolom ide-oda. delay sajnos nem működik, sorra hibát hoz. ASM nem tetszik neki.. kriszrap: Mit értesz RC alatt? Belső órajelet? A hozzászólás módosítva: Jún 15, 2016
Tedd be 0-ás optimalizációba mert nagyon érdekesen szokott optimalizálni az XC próbáld ki úgy szerintem menni fog úgy mert egy csomó változót túloptimalizál aztán nem lesz belőle semmi.
A delay-nél a sys_clk definiálva van?
A hozzászólás módosítva: Jún 15, 2016
Kivettem 0 optimalizálásra, de ugyan az a szitu..
Igen definiáltam de így:
Most ez a teljes kódom:
A hozzászólás módosítva: Jún 15, 2016
Igen egyszerüen sehogy se tudom beállitani
Idézet: „TABLE 24-1: CONFIGURATION BITS AND DEVICE IDs REGISTER 24-1: CONFIG1H: CONFIGURATION REGISTER 1 HIGH” Neked a CONFIG1H regisztert kell elsőnek megnézned, itt tudod beállítani, hogy belsőről menjen. Idézet: „1001 = Internal oscillator block, CLKOUT function on OSC2 1000 = Internal oscillator block” Hirtelen..
ezt hogy csnálom?
"TABLE 24-1: CONFIGURATION BITS AND DEVICE IDs REGISTER 24-1: CONFIG1H: CONFIGURATION REGISTER 1 HIGH"
Ez a PIC adatlapjában találod a 24-1-es résznél.
Pl:
Vagy használhatod a teljes részletes beállítást:
Neked itt már csak be kell állítanod, hogy belső órajelet akarsz és nem külsőt. Lehet Micro C-ben ez másként van, lehet a keretprogramodban is be lehet könnyedén állítani.. Én ezt C18-ra írtam.. A hozzászólás módosítva: Jún 15, 2016
A MikroC-ben valahol lehet módosítani a config biteket, de már rég használtam nagyon nem tudom hol lehet már.
Idézet: Mire gondolsz, mivel kapcsolatban nyugtassalak meg ?! „Nyugtass meg, ugye nem ttl bemenetről volt szó?”
Micro C-ben nézd meg a klienset, mert lehet be lehet állítani a keret programot is.
Ha nem akkor a main() elé..
Internall oscillator blockra állitottam
A while nem futt le és 3 led villágit egymástól távol. kód: void main() { TRISA = 0 ; TRISB = 0; TRISC = 0; TRISD = 0; TRISE = 0; while(1) { PORTD=0b00000000; PORTC=0b00000100; delay_ms(1000); PORTD=0b00000100; PORTC=0b00000100; } } DE legalább van valami ![]() A hozzászólás módosítva: Jún 15, 2016
Videó itt igaz dsPicre mutatják be de ha jól emlékszem mindenhol így kell beállítani.
PORTx regiszterekkel olvasunk, ennél és úgy általában a PIC18-as családnál LATx regiszter használunk a szint állításához.
Tehát:
Van egy pár regiszter amit érdemes beállítani ennél a PIC-nél. A hozzászólás módosítva: Jún 15, 2016
|
Bejelentkezés
Hirdetés |