LusoRobótica - Robótica em Português

Sistemas específicos => PIC => Tópico iniciado por: takersdown em 17 de Agosto de 2013, 18:19

Título: LCD+ pic18F4685
Enviado por: takersdown em 17 de Agosto de 2013, 18:19
Boas,

alguém já utilizou LCD 16x2 com PIC18F4685?
MPLAB C18, bibliotecas XLCD.
Título: Re: LCD+ pic18F4685
Enviado por: beirao em 17 de Agosto de 2013, 20:38
Tenho para PIC 18F4520. Qual a tua dúvida mesmo?
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 18 de Agosto de 2013, 17:20
Basta alterar o include e ficará funcional para  4685?

#pragma config FOSC = INTOSCIO_EC  é utilizado para a 4550 por exemplo

Qual o semelhante para a 4685? "#pragma config OSC = ...." ?
Título: Re: LCD+ pic18F4685
Enviado por: beirao em 18 de Agosto de 2013, 19:20
Mas tens a biblioteca e dá erro a compilar? Ou não faz o que queres? ou... ?

a definição OSC depende da tua fonte de relógio: interno? externo? de quantos mhz?
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 18 de Agosto de 2013, 19:39
Tenho a rular para 4550 com oscilador interno, mas qnd altero o include para 4685 nao rula.
Podera ter haver com #pragma config OSC , que não é igual e não sei bem qual usar.

Como posso por oscilador interno para 4685? Deveria dar a mesma biblioteca para para ambas correcto? A compilar da me bem, quando vejo na prática é que não é escrito nada no LCD.
Título: Re: LCD+ pic18F4685
Enviado por: beirao em 18 de Agosto de 2013, 19:46
Ah ok. Antes de mais, pode não ser do oscilador! Mas vamos por partes. Segundo o datasheet do teu PIC, tens:

1. LP Low-Power Crystal
2. XT Crystal/Resonator
3. HS High-Speed Crystal/Resonator
4. HSPLL High-Speed Crystal/Resonator with PLL enabled
5. RC External Resistor/Capacitor with FOSC/4 output on RA6
6. RCIO External Resistor/Capacitor with I/O on RA6
7. INTIO1 Internal Oscillator with FOSC/4 outputon RA6 and I/O on RA7
8. INTIO2 Internal Oscillator with I/O on RA6 and RA7
9. EC External Clock with FOSC/4 output
10. ECIO External Clock with I/O on RA6

Para o interno, experimenta o INTIO2.
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 18 de Agosto de 2013, 20:33
Esse pragma não pode ser utilizado. #pragma config OSC = INTIO2 , acusou erro.

Como posso fazer para utilizar interno?
Título: Re: LCD+ pic18F4685
Enviado por: Sérgio_Sena em 18 de Agosto de 2013, 21:58
pic16F4685.h

EDIT: PIC18F4685.h
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 20 de Agosto de 2013, 09:55
A que uso é 18F, não resultou fazer o include da respectiva PIC.
Título: Re: LCD+ pic18F4685
Enviado por: Sérgio_Sena em 20 de Agosto de 2013, 09:59
Nao eh apenas fazer o include, isso eh para o pessoal dos Arduinos que tem a papinha toda feita.

Tens q abrir o ficheiro e ver como eh a a implementacao dos FUSES atraves do PRAGMA como informacao para o compilador.

Ja abriste o manual do compilador? estah lah tudo explicado, como usar os PRAGMAS para os FUSES.
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 20 de Agosto de 2013, 10:40
Sim, vi o manual do compilador.

Tentei usar o seguinte:
#pragma romdata CONFIG1H = 0x300001
const rom unsigned char config1H = 0b00001000;

Mas não resultou. O programa que tenho funcionava para a 4550, o que devo alterar é relativo aos pragmas mas também ao Oscilador correcto?
Título: Re: LCD+ pic18F4685
Enviado por: Sérgio_Sena em 20 de Agosto de 2013, 10:46
Normalmente os FUSES sao quase sempre os mesmos, a nao ser que haja uma grande diferenca de familia.

Mas como sao dois chips diferentes, apesar de estarem na familia PIC18, eh bastante provavel q a configuracao dos perifericos tenha alguma diferenca.
Com o avancar do tempo e melhoramento dos chips, a Microchip tem acrescentado alguns novos SFR's que melhoram os perifericos e acrescentam funcionalidades.

O meu conselho eh abrir os dois datasheets lado a lado e fazer a comparacao.
Tambem, na primeira pagina do Google, estah este link que de certeza te pode ajudar :: http://www.hairyraho.com/mk2-hardware-pic18f4620-interface-pcb/ (http://www.hairyraho.com/mk2-hardware-pic18f4620-interface-pcb/)

Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 20 de Agosto de 2013, 11:35
Eu estou a usar compilador: C18.
Neste mesmo não é possível realizar a instrução: #FUSES NOWDT    //No Watch Dog Timer,
mas sim: #pragma config WDT = OFF


Eu no compilador ja conseguir, compilar sem erros mas na verdade no LCD nao é mostrada a mensagem.
Título: Re: LCD+ pic18F4685
Enviado por: Sérgio_Sena em 20 de Agosto de 2013, 11:42
Entao e consegues piscar um LED ?
Eh a maneira mais simples de saberes se o teu micro estah a correr.

Se sim, entao tens q fazer o debug da tua biblioteca e adaptar ao novo micro.
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 21 de Agosto de 2013, 15:05
Sim consigo colocar um LED a piscar. O mesmo programa que tenho para 4550 funciona mas para a 4685 não, não percebo é o porquê. Visto que os portos são numerados da mesma forma.
Título: Re: LCD+ pic18F4685
Enviado por: Sérgio_Sena em 21 de Agosto de 2013, 15:12
Entao se o LED pisca, so falta comparar datasheets lado-a-lado e ver as diferencas nos SFR's.

O 4685 eh um chip mais moderno que o 4550, por isso de certeza tem algumas modificacoes internas.
Eles qd dizem q o codigo eh portavel, teem razao. Soh nao dizem q teem q se ter a certeza q tds os SFR's estao a ser configurados devidamente.

Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 21 de Agosto de 2013, 15:51
O que devo ter em atenção nos SFR?

os seus endereços?
Título: Re: LCD+ pic18F4685
Enviado por: takersdown em 28 de Agosto de 2013, 18:49
Boa tarde,

como posso utilizar um LCD com PIC18F e stack tcp ip da microship? Devo adicionar o ficheiro xlcd.c em source files e xlcd.h em headers ou poderá fazer conflito com a pilha da stack?