Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1200 connectés 

  FORUM HardWare.fr
  Programmation
  C

  lecture d'eeprom ( HELP)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lecture d'eeprom ( HELP)

n°514713
Stuffer
Posté le 15-09-2003 à 09:07:26  profilanswer
 

Je recherche la routine de lecture et aussi celle d'écriture pour une eeprom de type 24C04 !
Vous connaissez un bon site ? ou vous l'avez peut etre en stock ?
 
Merci !


Message édité par Stuffer le 15-09-2003 à 09:12:45
mood
Publicité
Posté le 15-09-2003 à 09:07:26  profilanswer
 

n°514717
Stuffer
Posté le 15-09-2003 à 09:21:26  profilanswer
 

[:atreyu]

n°514724
Stuffer
Posté le 15-09-2003 à 09:34:18  profilanswer
 

[:atreyu]  PLEASE !!!!

n°514736
philou_a7
\_o< coin ! >o_/
Posté le 15-09-2003 à 09:57:18  profilanswer
 

si tu dis pas  
- sur quel type de machine (PC ? MAC ? SUN ? HP ? ...)
- sur quel OS
- avec quel langage
 
on risque pas de pouvoir t'aider  :sarcastic:  
 
en plus, pour ce genre de question, google est souvent ton ami :D

n°514740
Stuffer
Posté le 15-09-2003 à 10:02:18  profilanswer
 

philou_a7 a écrit :

si tu dis pas  
- sur quel type de machine (PC ? MAC ? SUN ? HP ? ...)
- sur quel OS
- avec quel langage
 
on risque pas de pouvoir t'aider  :sarcastic:  
 
en plus, pour ce genre de question, google est souvent ton ami :D


 
Bah j'ai deja cherché sur GOOGLE mais bon pas top !
PC + win 2000 + langage C !
 
En gros voilà le programme :  
 
/*--------------------------------------------------------------------------*/
/* Travaux Pratiques  : Pilotage statique des Pins d'un port série          */
/*--------------------------------------------------------------------------*/
/* Nom du programme : Ctrl-DB9.cpp                                          */
/* Auteur :           D.PAYON                                               */
/* Date de création : 14/09/2003                                            */
/* Version :            1.0                                                 */
/* Modifications : -> Utilisation des API de Windows                         /
/*--------------------------------------------------------------------------*/
 
#include <windows.h>  // pour utiliser les API32
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
 
 
#define CR  0x0D // Symbole du retour chariot
#define LF  0x0A // Symbole du saut de ligne
#define aigu 0x82 // Symbole du é en code page 437
#define grave 0x8A // Symbole du è en code page 437
#define aaxan 0x85 // Symbole du à en code page 437
 
/*--------------------------------------------------------------------------*/
/* Choix du port série                                                      */
/*--------------------------------------------------------------------------*/
int Choix_Port()
{
 int NoPort,flag=0;
 do
  {
  system("cls" );
  flag=0;
  fflush(stdin);
  printf("\t\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n" );
  printf("\t\t\tº     Choix du Port S%crie      º\n",aigu);
  printf("\t\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n" );
  printf("\t- Quel Port s%crie est utilis%c pour cette liaison ?\n\n",aigu,aigu);
  printf("\t\t\t- 1 - COM1 ( 3F8 )\n" );
  printf("\t\t\t- 2 - COM2 ( 2F8 )\n" );
  printf("\t\t\t- 3 - COM3 ( 3E8 )\n" );
  printf("\t\t\t- 4 - COM4 ( 2E8 )\n\n\t\t\t  " );
  scanf("%d",&NoPort);
  if((NoPort==1)||(NoPort==2)||(NoPort==3)||(NoPort==4))
   {
   }
  else  
   {
    printf("\t\tMauvais choix, veuillez vous limiter au choix propos%c!\n\n",aigu);
    system("pause" );
    flag=1;
   }
  } while(flag==1);
 return(NoPort);
}
 
/*--------------------------------------------------------------------------*/
/* Initialisation du Port Série            */
/*--------------------------------------------------------------------------*/
void Initialiser(HANDLE hCom, char N_Port[4+1])
{
 BOOL retour;
 //La structure DCB définit les paramétres de transmission de l'UART.
 DCB dcb_struct;        //Création de la structure Device Control Block
 
 retour = GetCommState(hCom,&dcb_struct);  // Vérifier l'existence du port.
 if (retour == 0) return;
 else
 {  
  dcb_struct.fDtrControl=DTR_CONTROL_DISABLE; // DTR=0
  dcb_struct.fRtsControl=RTS_CONTROL_DISABLE; // RTS=0
  dcb_struct.fOutxCtsFlow=TRUE;    // Par défaut
 
  retour = SetCommState(hCom,&dcb_struct); // Configuration du port avec ces paramètres.
 
 }
}
 
/*--------------------------------------------------------------------------*/
/* Paramètres de configuration de la liaison série                          */
/*--------------------------------------------------------------------------*/
void main(void)
{
 char carac,NomPort[4+1];
 int flag=0,CTS=7,EtatComm=0,state,x,y,z;
 BYTE *BufferIn;
 HANDLE hCom;
 BOOL retour;
 DCB dcb_structure;      //Création de la structure Device Control Block
 DWORD ModemStatus,NbOctetsALire,NbOctetsLus,i;
 
 
 sprintf(NomPort,"COM%d",Choix_Port()); // Saisie du N° du Port série utilisé
 system("CLS" );
 
 // Création du port de communication.
 hCom=CreateFile(NomPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
 
 if (hCom == INVALID_HANDLE_VALUE)   //Traitement des erreurs.
  {
   printf("\n\tErreur d'acc%cs au port S%crie %s\n\n\n",grave,aigu,NomPort);
   system("PAUSE" );
   return;  
  }
 else  
  {
  Initialiser(hCom,NomPort); // Saisie et affectation des paramétres du port série
  PurgeComm(hCom,PURGE_TXCLEAR&PURGE_RXCLEAR); // Vide des tampons d'émission/réception
 
/*--------------------------------------------------------------------------*/
/* Envoi de caractères saisis au clavier, et lecture des caractères reçus.  */
/*--------------------------------------------------------------------------*/
 
  printf("\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n" );
  printf("\t\tº       Communication avec le %s      º\n",NomPort);
  printf("\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n" );
  printf("\t( Appuyer sur la touche Ctrl + Q pour sortir de ce programme.)\n\n" );
 
  do
   {
    if(state!=EtatComm)
    {
     system("CLS" );
     state=EtatComm;
     x=(EtatComm&4)>>2;
     y=(EtatComm&2)>>1;
     z= EtatComm&1;
     printf("\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n" );
     printf("\t\tº       Communication avec le %s      º\n",NomPort);
     printf("\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n" );
     printf("\t( Appuyer sur la touche Ctrl + Q pour sortir de ce programme.)\n\n" );
     printf("\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n" );
     printf("\t\tº   RTS = %d      DTR = %d      CTS = %d   º\n",x,y,z);
     printf("\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n" );
     printf("\t    Pour faire commuter RTS %c l'%ctat 1 -> Appui sur 'r'\n",aaxan,aigu);
     printf("\t    Pour faire commuter RTS %c l'%ctat 0 -> Appui sur 't'\n",aaxan,aigu);
     printf("\t    Pour faire commuter DTR %c l'%ctat 1 -> Appui sur 'd'\n",aaxan,aigu);
     printf("\t    Pour faire commuter DTR %c l'%ctat 0 -> Appui sur 's'\n",aaxan,aigu);
     printf("\t    Pour lire les octets envoy%cs       -> Appui sur 'l'\n",aigu);
    }
    if ( kbhit() )
    {
     carac=getch();
     if (carac=='r')
     {
       retour = GetCommState(hCom,&dcb_structure); // Init d DCBpour hcom
       dcb_structure.fRtsControl=RTS_CONTROL_ENABLE; // RTS=1
       retour = SetCommState(hCom,&dcb_structure); // Configuration du port  
       EtatComm=EtatComm|0x4;      // Positionner le bit b2 à 1.
 
 
      }
      else if(carac=='t')
      {
       retour = GetCommState(hCom,&dcb_structure); // Init d DCBpour hcom
       dcb_structure.fRtsControl=RTS_CONTROL_DISABLE; // RTS=0
       retour = SetCommState(hCom,&dcb_structure); // Configuration du port  
       EtatComm=EtatComm&0xFB;     // Positionner le bit b2 à 0.
      }
     if (carac=='d')
      {
       retour = GetCommState(hCom,&dcb_structure); // Init d DCBpour hcom
       dcb_structure.fDtrControl=DTR_CONTROL_ENABLE; // DTR=1
       retour = SetCommState(hCom,&dcb_structure); // Configuration du port  
       EtatComm=EtatComm|0x2;      // Positionner le bit b1 à 1.
      }
      else if(carac=='s')
      {
       retour = GetCommState(hCom,&dcb_structure); // Init d DCBpour hcom
       dcb_structure.fDtrControl=DTR_CONTROL_DISABLE; // DTR=0
       retour = SetCommState(hCom,&dcb_structure); // Configuration du port  
       EtatComm=EtatComm&0xFD;     // Positionner le bit b1 à 0.
      }
    if (carac=='l')
    {
     retour = GetCommState(hCom,&dcb_structure);
     BufferIn= (BYTE*) malloc( NbOctetsALire * sizeof(BYTE));
     retour=ReadFile(hCom , BufferIn , NbOctetsALire , &NbOctetsLus , NULL);
     for (i=0 ; i<NbOctetsLus;i++)  
     {
      printf("%c",BufferIn[i]);    // Affichage à l'écran des octets lus
      if (BufferIn[i]==CR) putchar(LF);
     }
    free ( BufferIn );  
    }
 
 
    }
    retour=GetCommModemStatus(hCom,&ModemStatus);
    flag=MS_CTS_ON & ModemStatus;
    if(CTS!=flag>>4)
     {
     CTS=flag>>4;
     if(CTS==1) {EtatComm=EtatComm|0x1;}
     else {EtatComm=EtatComm&0xFE;}
     }
 
   } while(carac!=0x11);     // Caractère de sortie du programme.  
  }
 CloseHandle(hCom);        // Fermeture du Handle hCom.
}
 
/*--------------------------------------------------------------------------*/
/* Lecture sur le port série                                               */
/*--------------------------------------------------------------------------*/
 
 

n°514741
chrisbk
-
Posté le 15-09-2003 à 10:05:58  profilanswer
 

stuffer a écrit :


 
 
En gros voilà le programme :  
 
 


 
et ?
On en fait quoi de ton truc ?

n°514745
Stuffer
Posté le 15-09-2003 à 10:09:52  profilanswer
 

chrisbk a écrit :


 
et ?
On en fait quoi de ton truc ?


 
Bah disons que j'aimerais bien en faire ce que tu penses mais peux pas !
Ct juste pour donner une idée de mon problème !
 
 [:mirz]  Stuffer   [:mirz]

n°514764
Carbon_14
Posté le 15-09-2003 à 10:39:16  profilanswer
 

On n'a pas de 24C04 dans nos placards.
 
http://membres.lycos.fr/webelec/24c04.htm dit que l'interface est I2C. Y a qq infos sur le comment lui causer.
 
Sur http://hometown.aol.com/mcs51supp/24c04/24c04.htm (allemand), y a brochage.
 
Qq infos sur www.jlink.com.tw/Datasheet/24c04.pdf (Googlisation du 24C04).
 
Ce qu'il faut voir est : les broches à mettre à la masse, au + d'alim, la ou les broches par lesquelles envoyer des données..
Ensuite, le prog envoie (en l'adaptant) ce qu'il faut pour que le circuit soit content.

n°514818
philou_a7
\_o&lt; coin ! &gt;o_/
Posté le 15-09-2003 à 11:57:13  profilanswer
 

C'est juste de la lecture ecriture sur port série une fois que tu as fait le bon cablage. Par contre il faut connaitre le protocole de communication avec l'eeprom pour lui envoyer qqchose qu'elle comprendra :D et ça je sais pas :D
 
PS : c'est quoi ces horreurs de system("cls" ) et system("pause" ) ???????? sert toi des APIs curses si tu veux faire un peu de mise en forme texte, mais pitié, pas ça !!!

n°514968
Stuffer
Posté le 15-09-2003 à 15:17:39  profilanswer
 

Ok et bah merci bien les gars pour votre HELP !
 
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  lecture d'eeprom ( HELP)

 

Sujets relatifs
lecture fichier[Java-XML] Arret de lecture d'un fichier XML avec un parser SAX
[PHP] Help pour cookies[NS4] changer couleur avec onmouseover ! help !!
[help]texte a un endroit fixe au survol des liens[help]texte a un endroit fixe au survol des lien
Help j'arrive pas à implémenter une base Mysql avec PHPHelp : Php et Zend Optimizer
Help qcm pour débutant en Cfree , jalbum et livre d'or help.
Plus de sujets relatifs à : lecture d'eeprom ( HELP)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR