Página 1 de 1
Como gravar na memoria EEPROM interna do PIC18F4550 em C18?

Enviado:
29 Set 2017 16:41
por raf.dss
preciso realizar a escrita e a leitura de dados na memoria EEPROM interna de um pic18f4550, no entanto como estou aprendendo linguagem C ainda, não tenho muito conhecimento a respeito e não consigo adquirir alguma biblioteca para o C18 da Microchip.
Tentei procurar pelas bibliotecas descritas no livro Microcontroladores PIC18 aprenda e programe em linguagem C, do autor Alberto Noboru Miyadaira, no entanto não obtive resultados, caso alguém possa me dar alguma dica agradeço desde já.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
29 Set 2017 16:45
por tcpipchip
faz uma busca...lembro que ja foi discutido isto!
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
29 Set 2017 16:50
por raf.dss
tcpipchip escreveu:faz uma busca...lembro que ja foi discutido isto!
então eu procurei sobre, mas utilizando o compilador C18 não consegui nenhum resultado infelizmente
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
29 Set 2017 20:39
por KrafT
Cara, se tais começando, usa o XC8.
Ele é meio estúpido na versão free, mas pelo menos é atual e amigável, além de ter mais suporte.
Por exemplo:
http://microchipdeveloper.com/faq:36
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
29 Set 2017 22:37
por vtrx
cpp code
void Write_b_eep( unsigned int Endere,unsigned char bdata )
{
EEADR = (Endere & 0x0ff);
EEDATA =bdata;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
while(EECON1bits.WR);
INTCONbits.GIE = 1;
EECON1bits.WREN = 0;
}
// EXEMPLO DE ESCRITA ->Write_b_eep(0x0069,0x0010);
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
unsigned char Read_b_eep( unsigned int badd )
{
EEADR = (badd & 0x0ff);
EECON1bits.CFGS = 0;
EECON1bits.EEPGD = 0;
EECON1bits.RD = 1;
return ( EEDATA ); // return with read byte
// EXEMPLO DE LEITURA ->Read_b_eep( 0x0069)
}
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
30 Set 2017 16:59
por raf.dss
muito obrigado a todos ajudou muito, no entanto gostaria de saber se é possível e como escrever valores acima de 255 na memoria eeprom, estou tendo muita dificuldade nessa parte kk
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
01 Out 2017 04:04
por andre_luis
raf.dss escreveu:gostaria de saber se é possível e como escrever valores acima de 255 na memoria eeprom
- Código: Selecionar todos
Write_b_eep( Address , (unsigned char)(data >> 8) ); // MSB
Write_b_eep( Address+1 , (unsigned char)( data & 0x00FF) ); // LSB
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
02 Out 2017 10:07
por xultz
O XC8 já possui comandos de eeprom_read e eeprom_write, é só ver como funciona na documentação do compilador.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
02 Out 2017 10:56
por KrafT
xultz escreveu:O XC8 já possui comandos de eeprom_read e eeprom_write, é só ver como funciona na documentação do compilador.
Poisé... Ele não se manifestou se pegou um código/projeto para dar manutenção ou está começando algo novo. Se ele está começando do zero, ele deveria usar algo como GCC, ou então a ferramenta oficial.
Vai sabê...

De qualquer forma, se atendo restritamente à pergunta dele, a mesma já foi respondida. Mas em vez a proposta do André, eu uso
struct/union para tal.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
03 Out 2017 15:31
por rafael
Para PIC18 as ferramentas C18 e XC8 são a mesma coisa, a microchip deu apenas uma maquiada.
Ah, o compilador do c18, xc8, c30, xc16 eh o mesmo: GCC.
A microchip fez apenas o linker e adequou o gcc e cobram uma fortuna por isso !
Enviado do meu iPhone usando Tapatalk
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
03 Out 2017 15:33
por rafael
Esqueci do c32 e xc32!
Enviado do meu iPhone usando Tapatalk
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
03 Out 2017 15:37
por xultz
O C18 e XC8 não são tão iguais assim, muitas bibliotecas que a própria Microchip desenvolveu pro C18 não compilam no XC8. Por exemplo, para usar o ENC28J60, chip da própria Microchip, tem que usar o C18 porque as bibliotecas e a pilha TCP/IP só compilam no C18. Parece que apareceu suporte prá no MCC nas versões mais recentes, mas isso mais de 4 anos depois de lançarem o primeiro XC8.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
04 Out 2017 07:22
por KrafT
rafael escreveu:Esqueci do c32 e xc32!
Bom, eu achava que os XCxx da Microchip eram evolução os compiladores da Hitech, que por suas vez teriam sido desenvolvidos "do zero".
Mas isso não importa. O que eu estou dizendo, é que quem está começando terá uma curva de aprendizado mais gratificante com a ferramenta oficial (Mplab X + XC8, no caso). Depois que ele ficar bom, ele vai escrever o código no VI, compilar e linkar na linha de comando, tudo configurado na unha e sem necessidade de debugar cada linha do código. Nesse momento ele também não vai precisar do fórum e vai passar por aqui só para tripudiar sobre nossa ignorância.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
11 Out 2017 20:49
por rafael
xultz escreveu:O C18 e XC8 não são tão iguais assim, muitas bibliotecas que a própria Microchip desenvolveu pro C18 não compilam no XC8. Por exemplo, para usar o ENC28J60, chip da própria Microchip, tem que usar o C18 porque as bibliotecas e a pilha TCP/IP só compilam no C18. Parece que apareceu suporte prá no MCC nas versões mais recentes, mas isso mais de 4 anos depois de lançarem o primeiro XC8.
Nunca tentei para C18 / XC18 mas na época que eu usava a pilha TCP da Microchip com algumas alterações eu consegui alternar entre C30 e XC16.... Na verdade é apenas questão de arrumar macros e diretivas... é chato e doloroso mas não impossível.
Re: Como gravar na memoria EEPROM interna do PIC18F4550 em C

Enviado:
11 Out 2017 20:59
por rafael
dá uma olhada na imagem