Gravar Eeprom Interna 32bits PIC CCS

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 29 Ago 2013 12:09

Bom dia a todos.

Algum dos amigos do fórum teria alguma rotina, ou saberia me informar algum modo de gravar uma variável com 32bits na eeprom interna do pic usando o CCS?

Muito grato
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 29 Ago 2013 12:53

Boa tarde pessoal,


gostaria de compartilhar com os amigos e para quem necessitar, que achei a solução que estava sob meus olhos mas nunca havia percebido.
Trata-se da biblioteca INTERNAL_EEPROM do CCS que eu não sabia que existia.

É muito simples e funciona perfeitamente.

Um abraço a todos e muito obrigado.
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor andre_luis » 29 Ago 2013 19:42

Já tinha até usado isso aí, mas não liguei o nome á pessoa.
O fato é que uma das coisas legais do CCS é que vem tudo mastigado nessas API´s pra tudo quanto é modulo.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 29 Ago 2013 20:12

Isso é verdade André...
O CCS ajuda muito nessas horas com essas libs já prontas..

Além de tudo dá pra aprender muito com elas, se tiver tempo e paciência, dentro delas explica tudo o que faz e assim podemos até fazer por conta própria, foi o que eu fiz com esse caso.

Mas já tenho tido essa dificuldade na gravação de variáveis com mais 8 bits na eeprom do pic há um bom tempo. E venho sempre empurrando com a barriga...apesar de procurar muito na net, não encontrei nada muito objetivo para esse caso.

Por isso, fiz questão de postar aqui o resultado, para outros que como eu tem essa mesma dificuldade.

Grande abraço


andre_teprom escreveu:Já tinha até usado isso aí, mas não liguei o nome á pessoa.
O fato é que uma das coisas legais do CCS é que vem tudo mastigado nessas API´s pra tudo quanto é modulo.


+++
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor Song_21 » 24 Fev 2014 15:37

Alguém poderia me ajudar ??
Preciso escrever na EEPROM do PIC, gostaria de saber se alguém pode me dizer passo-a-passo ??
Eu uso o CCS
Song_21
Bit
 
Mensagens: 14
Registrado em: 21 Fev 2014 17:01

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor andre_luis » 24 Fev 2014 20:39

Song,


Quando você diz gravar na EEPROM do PIC, presumo que esteja se referindo á memória interna.
Já tentou usar o exemplo fornecido junto á instalação do compilador ?

Código: Selecionar todos
    /////////////////////////////////////////////////////////////////////////   
    ////                          EX_INTEE.C                             ////   
    ////                                                                 ////   
    ////  This program will read and write to the '83 or '84 internal    ////   
    ////  EEPROM.                                                        ////   
    ////                                                                 ////   
    ////  Jumpers:                                                       ////   
    ////     PCM,PCH    pin C7 to RS232 RX, pin C6 to RS232 TX           ////   
    ////                                                                 ////   
    ////  This example will work with the PCM and PCH compilers.  The    ////   
    ////  following conditional compilation lines are used to include a  ////   
    ////  valid device for each compiler.  Change the device, clock and  ////   
    ////  RS232 pins for your hardware if needed.                        ////   
    /////////////////////////////////////////////////////////////////////////   
    ////        (C) Copyright 1996,2003 Custom Computer Services         ////   
    //// This source code may only be used by licensed users of the CCS  ////   
    //// C compiler.  This source code may only be distributed to other  ////   
    //// licensed users of the CCS C compiler.  No other use,            ////   
    //// reproduction or distribution is permitted without written       ////   
    //// permission.  Derivative programs created using this software    ////   
    //// in object code form are not restricted in any way.              ////   
    /////////////////////////////////////////////////////////////////////////   
       
       
    #if defined(__PCM__)   
    #include <16F877.h>   
    #fuses HS,NOWDT,NOPROTECT,NOLVP   
    #use delay(clock=20000000)   
    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)   
       
    #elif defined(__PCH__)   
    #include <18F452.h>   
    #fuses HS,NOWDT,NOPROTECT,NOLVP   
    #use delay(clock=20000000)   
    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)   
    #endif   
       
    #include <input.c>   
       
       
    // The following initializes the first 4 locations of the data EERPOM   
    //  using the #ROM directive   
    #IF defined (__PCM__)   
    #rom 0x2100={1,2,3,4}   
    #elif defined(__PCH__)   
    #rom int 0xf00000={1,2,3,4}   
    #endif   
       
    void main() {   
       
       BYTE i, j, address, value;   
       
       do {   
          printf("\r\n\nEEPROM:\r\n");              // Display contents of the first 64   
          for(i=0; i<=3; ++i) {                     // bytes of the data EEPROM in hex   
             for(j=0; j<=15; ++j) {   
                printf( "%2x ", read_eeprom( i*16+j ) );   
             }   
             printf("\n\r");   
          }   
          printf("\r\nLocation to change: ");   
          address = gethex();   
          printf("\r\nNew value: ");   
          value = gethex();   
       
          write_eeprom( address, value );   
       
       } while (TRUE);   
    } 



+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 25 Fev 2014 08:24

Song,

Como citou o amigo André, se for apenas gravar na eeprom (memória não volátil) é muito simples, dê uma olhada na ajuda do CCS e procure pelos comandos write_eeprom e read_eeprom, tem todo o tutorial de utilização e é muito simples.
Não se esqueça que ela é de 8bits! Se precisar gravar dados maiores, dê uma lida nesse tópico desde o começo!

Abraço
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor Song_21 » 25 Fev 2014 13:19

Valeu galera, Agradeço pela ajuda !!

O que quero fazer é digitar um número , e dependo do número digitado quero que acenda um determinado LED.

Por exemplo:
digitei 125- pisca um LED vermelho
digitei 012- pisca um LED azul
(OBS.:Quero fazer isso pra 40 números ou mais...)

KEYPAD (usando teclado matricial) e LCD eu consigo dominar, só faltava dominar a escrita/leitura na EEPROM para associar o numero ao LED ....

Aproveitando a ajuda, tem alguma forma mais fácil de fazer isso ???
Song_21
Bit
 
Mensagens: 14
Registrado em: 21 Fev 2014 17:01

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 25 Fev 2014 19:57

Song,

Para essa aplicação não vejo a necessidade de utilizar gravação na eeprom, a não ser que deseje alterar a ordem dos números associados ao leds em tempo de execução.
Teclado Matricial tem uma biblioteca disponível no ccs. Procure por kbd.c.
Mas se esta iniciando, evite teclado matricial.
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor Song_21 » 26 Fev 2014 10:36

Juraci,

Você poderia me dar um exemplo disso sem usar a eeprom ??

Estou iniciando sim, qualquer ajuda será bem vinda !!
Song_21
Bit
 
Mensagens: 14
Registrado em: 21 Fev 2014 17:01

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 26 Fev 2014 12:11

Só resumindo a lógica:
Ainda será necessário fazer a leitura do teclado. Mas já dá pra ver como pode associar um número informado a uma cor de led

Código: Selecionar todos
#define PIN_XX led_vermelho
#define PIN_XX led_amarelo
#define PIN_XX led_verde

void main()
{
   int num_informado=0;
   led_verde=0;
   led_amarelo=0;
   led_verde=0;
   while (true)
   {
      if (num_informado == 123)
         led_vermelho=1;
      else if (num_informado == 321)
         led_amarelo=1;
      else if (num_informado == 213)
         led_verde=1;
   }
}
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor Song_21 » 27 Fev 2014 12:30

Valeu cara , muito obrigado !!!
vou tentar fazer assim...
Song_21
Bit
 
Mensagens: 14
Registrado em: 21 Fev 2014 17:01

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor ze2 » 27 Fev 2014 13:05

pra quem gosta de "elegâncias", um switch case até que num fica fêi demai da conta não...
Código: Selecionar todos
switch (num_informado){
case 123:         led_vermelho=1;break;
case 321:          led_amarelo=1; break;
case 213:         led_verde=1; break;
default:               led_vermelho=led_verde=led_amarelo=0;
}

Cuidado: um erro que todos iniciantes cometem é usar led_verde
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor juracipereira » 27 Fev 2014 16:16

Pois é Ze, também pensei nisso,

mas como nosso amigo Song está apenas iniciando resolvi passar a essência da coisa, para ele não se perder logo de cara. Convenhamos que "if-else" é muito mais intuitivo para que tá partindo do zero, concorda?

Abraço
juracipereira
Bit
 
Mensagens: 32
Registrado em: 14 Jan 2008 23:38

Re: Gravar Eeprom Interna 32bits PIC CCS

Mensagempor ze2 » 27 Fev 2014 17:03

"Ai quem manda é o o projetista. Ele tem que dosar os prós e contras. Foi apenas uma sugestão."
(by cfeund)
(kk)
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x