Vai al contenuto
PLC Forum


Help Programmazione Pic


Condor

Messaggi consigliati

Ho da poco iniziato a lavorare con i pic,mi sono costruito una demoboard con 16f876 display lcd ecc. ecc.

ho comprato il prog mptool,con il quale mi trovo abbastanza bene "ho appena ordinato il proton+" ma ora

mi sono arenato in qesto punto "il proton+ dovrebbe farlo automaticamente"

il programma che stò scrivendo ha superato il primo banco di memoria e quando lo mando in esecuzione

mi si blocca proprio li quando deve andare a leggere le istruzioni che si trovano nel secondo banco,ho provato a contattare il topo che ha fatto mptool il quale ha risposto dicendo che il suo programma ha proprio questo limite,cioè non essere in grado di gestire automaticamente i banchi di memoria ma che si pùò aggirare l'ostacolo inserendo delle semplici istruzioni in ASM tipo banksel o branch.

Ho cercato di documentarmi su questo ma ho trovato poco e niente e quello che ho trovato non sono riuscito

a metterlo in pratica.

Potreste gentilmente darmi una mano?

Grazie

Ciao

Link al commento
Condividi su altri siti


Non conosco il programmatore che tu usi.

Per la verita' non e' il programmatore che ha il limite di memoria ma bensi il pic.

I PIC della serie 16F hanno il Program Counter diviso in due registri PLC E PCLATH che vengono gestiti automaticamente quindi non ha problemi ad indirizzare tutta la memoria.

Il problema si presenta quando devi fare delle CALL o GOTO che superano la pagina di memoria , queste istruzioni sono limitate a 14 bit quindi tre bit per 'istruzione e 11 per l'indirizzo.

Mancando due bit per indirizzare tutta la memoria si devonono settare i due bit del PCLATH a mano , cioe prima della chiamata della routine o del salto e rimetterli a posto dopo.

in tuo aiuto puoi usare il comando PAGESEL che genera le istruzioni necessarie per fare il salto in modo corretto.

Pere usare questa istruzione devi fare cosi...

PAGESEL salto

GOTO salto

.

salto

... istruzioni....

.

.

.

oppure puoi configurare i due bit del PCLATH ( bit 3 e 4 ) manualmente

00 pagina 0

01 pagina 1

10 pagina 2

11 pagina 3

solo linguaggi ad alto livello come il C hanno questi salti di pagina automatici.

saluti

Link al commento
Condividi su altri siti

Salve,

Da diverso tempo programmo pic, prima in assembler, adesso in basic.

In assembler si riesce ad essere più veloci e si possono fare delle cose che in basic non sono possibili, ma comunque con un buon compilatore basic c'è la possibilità di integrare parti in asm.

Mptool l'ho provato e sinceramente si presenta bene ma all'atto pratico non mi sembra molto funzionante.

Per quanto riguarda i salti di memoria quello che dice dlgcom è correttissimo anche se purtroppo sono operazioni noiose!.

Sui datasheet del pic 16fxxx è spiegato in qualche modo.

Se non erro proton+ non ha questi problemi.

Saluti

Buon Lavoro!!!!

Link al commento
Condividi su altri siti

E' disponibile anche un compilatore C , e' il PCW compiler della CCS inc.

Con questo compilatore non ci sono problemi ed e' potentissimo con molte librerie disponibili in internet.

Saluti

Link al commento
Condividi su altri siti

  • 4 weeks later...

Vi ringrazio per le risposte.....

Ho acquistato il proton+, con quasto compilatore ho risolto tutti i problemi che avevo

Se c'è qualcuno che usa questo compilatore avrei bisogno di chiedere alcune cosine riguardanti la

scrittura/lettura delle eeprom 24c..

Grazie per l'aiuto.....

Link al commento
Condividi su altri siti

  • 4 weeks later...

Ciao Dis,

Funzionante è una parola errata, volevo dire funzionale, in quanto è un pò rigido come struttura, questa comunque è una mia opinione.

Mi trovo meglio in asm e in basic, puoi articolare in maniera molto più complessa e fine il programma.

Saluti

Marco

Modificato: da k6233
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...