Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

EEPROM interne 68HC11 en c



  1. #1
    thomasalbert1993

    Cool EEPROM interne 68HC11 en c


    ------

    Bonjour

    Comment lire et écrire des données dans l'e²prom interne du 68hc11 en langage c, ou en utilisant les registres ?

    merci

    Thomas

    -----

  2. Publicité
  3. #2
    abracadabra75

    Re : EEPROM interne 68HC11 en c

    Bonjour.
    L'implantation de l'EEPROM varie d' un type de HC11 à l' autre et il faut donc se reporter au datasheet correspondant.
    Je connais très mal le langage C, mais le principe reste le même:
    une adresse fait 16 bits; il faut donc la charger dans un tel registre, puis lire ce registre.
    En assembleur, cela donne ceci, en supposant que tu veuille lire l' octet à l' adresse $CA32
    Code:
          ldx   #$CA32     ;charge l' adresse dans registre X
          ldaa 0,X         ;charge le contenu à l' adresse ci-dessus dans registre A
          staa PORTC       ;traitement dans le PortC (pour exemple)
    A+
    Dernière modification par abracadabra75 ; 12/06/2007 à 16h33.
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  4. #3
    thomasalbert1993

    Re : EEPROM interne 68HC11 en c

    ok

    donc en c ça donnerait qqc du genre :

    ADRESSE_EEPROM = 0xCA32;
    DONNEE = 0xED; //Pour écriture dans eeprom

    ou x = DONNEE; //pour lecture

    avec ADRESSE_EEPROM et DONNEE les registres d'adresses et de don,nées de l' eeprom

    merci beaucoup

  5. #4
    abracadabra75

    Re : EEPROM interne 68HC11 en c

    Bonjour.
    Je ne comprends pas la deuxième ligne, mais comme je te l' ai dit, mes connaissances du C sont fort minces.
    Cependant il me semble que tu fais des confusions terminologiques.
    Les 'registres' sont des domaines du HC11. Par exemple, le registre A est à l' adresse $1000, le B à $1004.
    Dans ton programme en C, il te faut des mots de 2 octets pour les loger à la bonne adresse.
    Attention: tu ne peux pas écrire comme ça dans l'e²prom.
    Celle-ci contenant le programme, est protégée en écriture.
    Si on veut écrire dedans quand on est en phase d' exécution du programme, cest possible, mais il faut positionner le registre OPTION dans les 64 premiers cycles d' eécution et avoir une routine logée en RAM.
    Il faut la loger en RAM, car lorsqu' on veut écrire dans l' E²PROM, à ce moment la lecture y est interdite, et donc on ne peut exécuter le programme.
    Par contre si tu utilises un HC11F1 avec le programme dans une mémoire externe, là ça devient possible d' avoir la routine en mémoire externe.
    J' espère avoir un peu éclairé ta lanterne.
    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    thomasalbert1993

    Re : EEPROM interne 68HC11 en c

    merci

    cela est un peu complquiué, et je pense que je vais opter pour une eeprom i²c (en + j'aurais plus de mémoire )

    pour l'eeprom, c'est bon maintenant, j'ai donc trouvé une solution, qui me semble un peu moins compliquée.

    Je ne voudrais pas ouvrir une nouvelle discussion ,alors je te pose une question qui n'a rien à voir ici :

    toi qui m'as l'air de bien savoir développer en ASM (moi je n'y connais STRICTEMENT rien à l'ASM), connais tu une routine qui permet d'attendre x cycles (le microprocesseur se "pause" duran,t x cycles) ?

    et les autres, copmment intégrer une ligne ASM dans du code c ? asm( ); ?

  9. #6
    abracadabra75

    Re : EEPROM interne 68HC11 en c

    Pour lire l' eeprom, passer par de l' I²c qui n'est pas géré par le HC11 est sûrement plus compliqué que d ' écrire les 3 instructions de lecture.
    Pour l' écriture, je ne suis jamais passé par I²C, donc je ne peux te répondre. Et d' ailleurs, as tu assez d' espace disponible dans ton HC11?

    Il me semble que pour inclure de l' asm dans du C, il existe une pseudo-instruction telle que , tout simplement 'asm', ou 'include asm', mettre le code, puis quelquechose comme 'endasm'.

    Pour introduire une attente définie, il faut soit compter les cycles d'exécution, soit utiliser le compteur du timer. Les 2 techniques sont aussi valables l' une que l' autre, la première étant cependant plus précise et commode pour les temps très courts (< 1 ms).
    Pour les plus longs, j' ai écrit une oucle d' attente, mais.... en assembleur.

    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  10. Publicité
  11. #7
    thomasalbert1993

    Re : EEPROM interne 68HC11 en c

    mes délais sont de l'ordre de 10µs à une dizaine de secondes !!

    sinon pour l'eeprom, oui je pense avoir assez de place, puisque 100 octets devraient me suffire.

    voili voilou

    ba tu peux toujours me donner ton instruction asm pour compter les cycles, j'essairait de l'inclure dans du c

  12. #8
    abracadabra75

    Re : EEPROM interne 68HC11 en c

    Je te mets en pj le code du sous-programme; le minimum mesurable est 100µs, le maximum 1 seconde, avec une erreur constante de 7 µs quelque soit le temps demandé.
    On peut étendre à 25 µs et monter à 1,5 s en rajoutant 3 ou 4 lignes.

    L' appel se fait comme tout sous-programme (call? gosub?), par exemple
    Code:
    call tempo_0.1s
    Il est sûrement possible de diminuer l' erreur des 7 µs en se creusant un peu la tête.

    Pour 10 secondes? Ben, on exécute 10 fois 1 seconde!
    A+
    Fichiers attachés Fichiers attachés
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  13. #9
    thomasalbert1993

    Re : EEPROM interne 68HC11 en c

    merci

Discussions similaires

  1. Le 68hc11
    Par gaga2410 dans le forum Électronique
    Réponses: 3
    Dernier message: 07/09/2007, 18h06
  2. programmation 68HC11
    Par rob217 dans le forum Électronique
    Réponses: 5
    Dernier message: 30/12/2005, 23h12
  3. liaison 68hc11
    Par amo dans le forum Électronique
    Réponses: 1
    Dernier message: 21/01/2004, 21h55
  4. 68HC11
    Par nanard dans le forum Électronique
    Réponses: 2
    Dernier message: 24/08/2003, 13h59
  5. 68hc11
    Par 14bds75_cb dans le forum Électronique
    Réponses: 6
    Dernier message: 02/06/2003, 10h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.