EEPROM pour PIC 18F45K22
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

EEPROM pour PIC 18F45K22



  1. #1
    juju713925

    EEPROM pour PIC 18F45K22


    ------

    Bonjour à vous,

    J'aimerais savoir comment on écrit dans une EEPROM en mikropascal pour un PIC 18F45K22?

    les routines sous MikroPascal sont accesible par exemple EEPROM_write(adresse, data), et pareil pour lire EEPROM_read(adresse)...

    Or mon problème c'est que je n'arrive pas à utiliser ces routines pour un PIC 18F45K22 alors que pour un PIC16F628A fonctionne très bien..

    Je voulais écrire à l'adresse $00 la valeur $02 et lire cette valeur dans le PORTB par exemple mais rien à faire ça ne fonctionne pas...

    Pouvez-vous me donner une exmple SVP?

    Cordialement

    -----

  2. #2
    paulfjujo

    Re : EEPROM pour PIC 18F45K22

    pour ces PIC18F avec EEPROM 1K, l'adresse doit etre un entier 16 bits...

  3. #3
    RISC

    Re : EEPROM pour PIC 18F45K22

    Salut,
    Il existe peu d'exemples en Mikropascal. Le plus simple est de chercher un exemple en C et de l'adapter au Mikropascal.
    Regardes aussi les exemples à base de PIC18F45K20.
    a+

  4. #4
    juju713925

    Re : EEPROM pour PIC 18F45K22

    Bonjour,

    Oui, il est vrai qu'il n'y apas trop d'exemple en MikroPascal, en tous cas en ce qui concerne un extrait du datasheet présenté ci-dessous, même en lisant de haut en large et en travers, je ne sais pas comment je l'écrit en Mikropascal.

    De votre coté comment vous le traduisez?

    EXAMPLE 7-1: DATA EEPROM READ =>exemple en lecture

    MOVLW DATA_EE_ADDR ;
    MOVWF EEADR ; Data Memory Address to read
    BCF EECON1, EEPGD ; Point to DATA memory
    BCF EECON1, CFGS ; Access EEPROM
    BSF EECON1, RD ; EEPROM Read
    MOVF EEDATA, W ; W = EEDATA

    EXAMPLE 7-2: DATA EEPROM WRITE => exemple en écriture

    MOVLW DATA_EE_ADDR_LOW ;
    MOVWF EEADR ; Data Memory Address to write
    MOVLW DATA_EE_ADDR_HI ;
    MOVWF EEADRH ;
    MOVLW DATA_EE_DATA ;
    MOVWF EEDATA ; Data Memory Value to write
    BCF EECON1, EEPGD ; Point to DATA memory
    BCF EECON1, CFGS ; Access EEPROM
    BSF EECON1, WREN ; Enable writes
    BCF INTCON, GIE ; Disable Interrupts
    MOVLW 55h ;
    Required MOVWF EECON2 ; Write 55h
    Sequence MOVLW 0AAh ;
    MOVWF EECON2 ; Write 0AAh
    BSF EECON1, WR ; Set WR bit to begin write
    BSF INTCON, GIE ; Enable Interrupts
    ; User code execution
    BCF EECON1, WREN ; Disable writes on write complete (EEIF set)

    Cordialement

  5. A voir en vidéo sur Futura
  6. #5
    paulfjujo

    Re : EEPROM pour PIC 18F45K22

    bonjour,


    Version en C18 .. à adapter

    ou integrer directement de l'ASM dans le Pascal
    c'est possible en MikroC Pro , en Pascal , je ne sais pas...


    Code:
    //------  EEPROM du PIC18Fx6K22 ---------------
    
    
    //---- EEPROM PIC 18F 1Ko bytes  ================
    unsigned char EEPROM_Lect(unsigned int adrL) ; // lecture a l'adresse adrL
    void EEPROM_Ecr(unsigned int adrE,unsigned char car); // ecrit  a l'adresse adrE
    void Save_Msg_To_EEPROM(unsigned char * adrx, unsigned char *ptr1);
    void PrintOut_Eeprom_Msg(unsigned int PtrE);  // special for 18F46K22 1024 bytes EEPROM
    void Relit_PIC_Eeprom(void);
    
    unsigned char EEPROM_Lect(unsigned int AdrL) // lecture a l'adresse adr
    {  
     
        EEADR =(unsigned char)(AdrL&0x00FF);
        EEADRH =(unsigned char) ((AdrL>>8)&0x0003);   //Bits 2-7 are masked off since EEPROM is only 1KB
    	EECON1bits.EEPGD=0;     // 0= adressage EEPROM
    	EECON1bits.CFGS=0;      // 0= acces data EEPROM
    	EECON1bits.RD=1;        // arme Lecture EEprom
    	return(EEDATA);
    }
    
    void EEPROM_Ecr(unsigned int AdrE,unsigned char car) // ecrit  a l'adresse adrE
    {int dr=0;
        EEADR =AdrE & 0xFF;
        EEADRH = (AdrE>>8)& 0x03;   //Bits 2-7 are masked off since EEPROM is only 1KB
    	EEDATA=car;
    	EECON1bits.EEPGD=0;
    	EECON1bits.WREN=1;            // autorise ecriture EEPROM
    	EECON1bits.CFGS =0;
      if(INTCONbits.GIE ==1)
        {
        INTCONbits.GIE =0 ;
        dr=1;
        }
    	EECON2=0x55;
    	EECON2=0xAA;
    	EECON1bits.WR=1;
    	while (PIR2bits.EEIF==0);
    	PIR2bits.EEIF=0;
    	EECON1bits.WREN=0;
    	if (dr==1)INTCONbits.GIE =1;
    }
    
    void Save_Msg_To_EEPROM(unsigned char * adrx, unsigned char * ptr1)
    {
    	while (*ptr1) EEPROM_Ecr(adrx++,*ptr1++);
    }
    
    void PrintOut_Eeprom_Msg(unsigned int PtrE)
    { unsigned char c;
      do
      {
      if ( PtrE >1023) break;
      c = EEPROM_Lect(PtrE);
      if ( c==0) break;
      Put_RS(c);
      PtrE++;
      }
      while (c!=0)  ;
     Tempo(1000L);
    }

  7. #6
    juju713925

    Re : EEPROM pour PIC 18F45K22

    Ok merci je vais essayer,

    Bien cordialement,

  8. #7
    juju713925

    Re : EEPROM pour PIC 18F45K22

    aie, il est vrai que au niveau du langage C je n'y connais vraiement rien j'essaye d'interpreter le programme mais bon... Pas évident,

    Une personne sur ce forum pourrais écrire ce même programme mais en MikroPascal?
    j'ai tenté de mon coté mais l'avantage c'est qu'en MikroPascal il y'à des routines toutes faitre comme:
    EEPROM_write(iadresse,ivalue) et idem pour EEPROM_read(iadresse).....

  9. #8
    paulfjujo

    Re : EEPROM pour PIC 18F45K22

    il y'à des routines toutes faitre comme:
    EEPROM_write(iadresse,ivalue) et idem pour EEPROM_read(iadresse).....
    Si ces fonctions existent
    elles devraient fonctionner au detail pret, que l'adresse à fournir doit etre un entier 16 bits
    au lieu d'un byte 8 bits..

    Il n'y a pas de doc sur cette fonction ?

    Je voulais écrire à l'adresse $00 la valeur $02
    il faut faire ecrire à l'adresse $0000 la valeur $02



    sinon, voir le forum Mikroe section MikroPascal
    Dernière modification par paulfjujo ; 23/05/2014 à 10h32.

  10. #9
    RISC

    Re : EEPROM pour PIC 18F45K22

    Salut,

    si tu veux des exemples de Mikropascal, il vaut mieux aller sur le site du fabricant de ton compilateur (Mikrolektronika). Il y a un forum sur leur site.Tu devrais trouver des exemples pour le Pascal
    0.01% des utilisateurs de microcontroleurs utilisent le langage Pascal...et 95% le langage C

    a+

  11. #10
    juju713925

    Re : EEPROM pour PIC 18F45K22

    Ok merci,

    Oui tous a fait d'accord sur les 0.01% des utilisateurs MikroPascal en ce qui concerne le C " C une USINE à GAZ",

    Pour MikroElectronika tous en Anglais comme ça c'est vue ,

    En tous cas merci à vous je vais "mixé" vos infos

    @ bientôt

Discussions similaires

  1. probleme avec MPLABX pas de pic 18F45K22
    Par Albert-cosmoff dans le forum Électronique
    Réponses: 1
    Dernier message: 06/02/2014, 19h24
  2. Réponses: 3
    Dernier message: 22/10/2012, 11h49
  3. Problème Adaptation de tension 5V-->3.3V avec 18f45k22,Gps,buffer
    Par invite68468068 dans le forum Électronique
    Réponses: 24
    Dernier message: 05/05/2012, 12h45
  4. adresse EEPROM pour programme PIC
    Par invite55dd1028 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/12/2008, 19h17
  5. Mémoire tampon pour max232 et eeprom
    Par invite3d33f9e2 dans le forum Électronique
    Réponses: 6
    Dernier message: 19/08/2006, 23h54
Découvrez nos comparatifs produits sur l'informatique et les technologies.