 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Jan 02, 2006 11:57 am Naslov sporočila: |
|
|
bferlic je napisal/a: |
.... Priporočal bi ti še uporabo bootloaderja, saj je z njim programiranje veliko hitrejše, potrebna je le serijska povezava z računalnikom. Sam sem s tem procesorjem uspešno uporabljal Tiny PIC bootloader.
|
Sam sicer uporabljam P16pro, kateri PIC sprogramira dokaj hitro. Mogoče napišeš o bootloader-ju kaj več. Varjant je vrjetno kar nekaj. Koliko razumem programiranje poteka preko USART-a. Torej sta ta dva pina lahko uporabljena le za serijsko komunikacijo? Kateri del programskega pomnilnika zasede bootloader? Kot hardware je vrjetno uporaben tale proteusov adapter ? _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Pon Jan 02, 2006 12:53 pm Naslov sporočila: |
|
|
Jaz vedno več uporabljam ICSP tudi za protoboard preko K150 DIY programatorja. Pri bootloaderju sem imel težave, ker C compilerju nisem mogel (znal) dopovedati, da prostor, kjer je bootloader, ne sme uporabljati. Tale K150 pa podpira tudi 18F458... |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Jan 02, 2006 4:51 pm Naslov sporočila: |
|
|
Malo raziskujem sam mikrokontroler. Kar nekaj stvari me je presenetilo. Ena iz med njih je to, da je sedaj W - WREG fizičen register. Nekaj čudega sem namreč doživel, ko sem zamenjal inc datoteko, ki jo je pripel bferlic. Ko sem kodo prevedel mi je "zatežil" o tem, da se labela "clrw" ne nahaja v prvem stolpcu (mišljena je sicer bila instrukcija, ki briše W register) Na kar sem šel gledati star inc. Tam sem videl da je definirano:
Koda: |
#define clrw clrf WREG ; PIC16Cxxx code substitution (WREG is addressable)
|
Torej brisanje fizičnega registra. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
bferlic Član

Pridružen-a: Tor 09 Dec 2003 17:28 Prispevkov: 99 Aktiv.: 0.42 Kraj: Brezula, Rače
|
Objavljeno: Pon Jan 02, 2006 9:52 pm Naslov sporočila: |
|
|
Zdravo
Jaz sem uporabljal bootloader predvsem zato, ker nimam nobenega drugega programatorja kot JDM in z njim je res nemogoče delati. Sam sem uporabljal, kot sem že napisal, Tiny PIC bootloader. Zasede mislim da okrog 100 besed na koncu flash pomnilnika. Glede kode je zahteva, da mora biti v prvih 4 besedah pred prekinitvenim vektorjem ukaz goto, saj bootloader te štiri besede prestavi na drugo lokacijo.
Programiranje poteka tako: najprej odpremo priložen program na računalniku, nastavimo, kateri COM port bomo uporabili, in hitrost le tega. Ta je odvisna od verzije .hex datoteke, ki smo jo naložili v mikrokontroler z navadnim programatorjem. Potem je potrebno resetirati vezje, in v naslednji sekundi pritisniti Write flash v programu. Hex datoteka se skopira v čip in avtomatsko zažene, hitrost programiranja je omejena s hitrostjo COM porta, je pa do največ nekaj sekund. Če pa ne pritisnemo Write flash, pa se po eni sekundi čakanja zažene stari program v mikrokontrolerju. Zato je za končno aplikacijo vseeno potreben navaden programator, saj mikrokontroler pri navadnem zagonu vedno čaka 1 sekundo.
LP |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Pon Jan 02, 2006 10:48 pm Naslov sporočila: |
|
|
Jaz sem imel pa takšen bootloader, da je čakal mislim da manj kot 100 ms na ukaz iz računalnika, tako da zakasnitev ob normalnem vklopu vezja skoraj ni bila opazna. V programu se je enostavno kliknilo na gumb Write, nato pa vezje resetiralo (mislim da je bila omejitev tam nekje 10s čakanja) in program je prenesel HEX v mikrokontroler. |
|
Nazaj na vrh |
|
 |
bferlic Član

Pridružen-a: Tor 09 Dec 2003 17:28 Prispevkov: 99 Aktiv.: 0.42 Kraj: Brezula, Rače
|
Objavljeno: Pon Jan 02, 2006 11:15 pm Naslov sporočila: |
|
|
Mislim, da se da to narediti tudi s tem bootloaderjem, moral bi samo RTS linijo na COM portu uporabiti za reset. Jaz vezja nisem spreminjal.
LP |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Jan 03, 2006 12:47 am Naslov sporočila: |
|
|
Znova in znova me kaj preseneti . Seveda sem se odločil, da skušam narediti neko aplikacijo. Za začetek sem hotel dodati 6 običajnih led displejev, ki bodo delali v mutiplex načinu. Zataknilo se je že pri klasični tabeli:
Koda: |
TABELA
addwf PCL,f
retlw b'11111110'
retlw ......
retlw
|
zadeva se je obnašala zelo čudno -brala mi je le polovico tabele. Na kar ugotovim da se dejansko PC premika po dva fizična naslova. Ugotovil sem da obstajajo namenski registri prav za branje tabel a zadeve še nisem uspel preučiti. Mogoče kdo napiše kaj o tem. Koristno se mi zdi tudi hardwersko množenje. Pred vsem zaradi hitrosti. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Sre Jan 04, 2006 11:26 am Naslov sporočila: |
|
|
za programiranja serije 18Fxxx priporočam:
http://www.sprut.de/electronic/pic/brenner/
meni deluje v redu in dokaj hitro.
LP _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jan 04, 2006 7:30 pm Naslov sporočila: |
|
|
LoLek je napisal/a: |
S tem 18f458 veliko delam in nima kakšnih posebnosti oz. večjih pasti. Delal sem z ASM in z C pa je vse lepo špilalo. Mogoče to, da ima nekatere porte po defaultu nastavlene na npr. komparator (portd) ali A/D (porta). To vse lepo piše v datasheetu.
Je pa zelo zmogljiv PIC, lahko delaš marsikaj. |
Tukaj bom dopisal par, stvari, izkušenj...
Res poznavalcem serije 16X omenjena družina ne bo predstavljala večjega problema. Definitvno pa zadevo odsvetujem začetniku sploh, če se bi želel nad njih spustiti z assemblerjem. Že sem sem kaka dva dni "kopal" le med registri. Začetniku bi verijetno hitro zmanjkalo volje.
Naletel pa sem na par bistveno drugih stvari (pasti). Elegantna stvar je, da so sedaj registri mapirani le v eni banki. Zanimivih je tudi par novih instrukcij. Recimo zelo dobrodošla je "movff REG1, REG2". Tudi hardwerko množenje se mi zdi zelo uporabno. Prekinitve so (lahko) dvonivojske. Lahko pa seveda delajo kot 16X serija. Funkcije "tabel" še nisem razglabljal. V programu sem sicer uporabil tabele na "star način" Moti me, da še vedno niso uspeli shraniti WREG,STATUS-a ter BSR registrov samodejno v sklad ob prekinitvi. Razlik je tudi nekaj glede indirektnega naslavljanja - INDF registrov je namreč več. "Padel" sem na eni stvari, ki mi je vzela kar precej časa. Vključil sem AD porte za tem sem po pomoti definiral RA1 kot izhod. (AN1) Pin se je obnašal kot izhod z nizkim stanjem - AD pa je vseeno izvajal meritev - a izmerjena vrednost ni bila pravilna. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
LoLek Član

Pridružen-a: Sre 25 Feb 2004 12:46 Prispevkov: 343 Aktiv.: 1.45
|
Objavljeno: Sre Jan 04, 2006 8:02 pm Naslov sporočila: |
|
|
Silvo je napisal/a: |
Definitvno pa zadevo odsvetujem začetniku sploh, če se bi želel nad njih spustiti z assemblerjem. |
Sem bil tisti revež, ki je napadel to serijo kar z asm-jem. Brez prejšnjih izkušenj s katerikolim mikrokrmilnikom.
Pa sem preživel, ko sem prvič videl tisti 400+ strani datasheet, se mi je obračalo, ampak na koncu se je splačalo.  |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jan 04, 2006 8:15 pm Naslov sporočila: |
|
|
Res, ko vidiš 400+ strani moraš kot začetnik biti res vstrajen. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|