il me rend fou ce prof
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

il me rend fou ce prof



  1. #1
    invitec316b1ca

    il me rend fou ce prof


    ------

    Salut
    Il me rend dingue ce prof, chaque il me répète que ce n’est pas bon, demain
    Il va tuer, si je me suis trompé.
    Il faut écrire 40 octets dans une eeprom externe, mais les données sont
    Contenu dans un fichier temporaire.
    Merci
    Soit vous envoyez l’adresse de départ suivie par un maximum de 64 octets, qui seront
    écris séquentiellement dans la mémoire.
    lecture/écriture
    ecrire_ADDR equ b'10100000' ; addresse
    lire_ADDR equ b'10100001' ; addresse
    addresse 0x5AA5
    lecdata:40 ; contient les donnees a ecrire soit 40 octets
    Ecrie_Page
    bcf STATUS,RP1 ; passer banque 1
    bcf STATUS,RP0 ; passer banque 0
    movlw .40 ; on met 40 dans le registre W
    movwf octet_compt ; on met 40 dans le compteur
    call BSTART ; lancer le start-condition
    bcf STATUS,RP0 ; passer banque 0
    movlw ecrire_ADDR ; on met B'10100000' dans le registre W
    movwf emet_buffer ; on met B'10100000'dans le buffer
    call envoie ; envoie
    bcf STATUS,RP0 ; passer banque 0
    movlw 0x5A ; on met 0x5A dans le registre W (0x5AA5)
    movwf emet_buffer ; on met 0x5A dans le buffer
    call envoie ; envoie
    bcf STATUS,RP0 ; passer banque 0
    movlw 0xA5 ; on met 0xA5 dans le registre W
    movwf emet_buffer ; on met 0xA5 dans le buffer
    call envoie ; envoie
    bcf STATUS,RP0 ; passer banque 0
    envoie_octet ; boucle 40 octets
    MOVLW lecdata ; contient les donnees a ecrire
    MOVWF FSR ; FSR pointe maintenant sur l'adresse
    CLRF INDF ; on efface l'adresse pointée par FSR
    INCF FSR ; FSR pointe maintenant sur l'adresse suivante
    movf octet_compt,W ; on met octet_compt dans W
    movwf emet_buffer ; on met W dans le buffer
    call envoie ; envoie
    bcf STATUS,RP0 ; passer banque 0
    decfsz octet_compt,F ; décrémenter compteur d'octets
    goto envoie_octet ; pas dernier, suivant
    call BSTOP ; fin transaction
    call octet ; dernier, on recommence

    -----

  2. #2
    gedonet

    Re : il me rend fou ce prof

    Bonjour
    Je pense qu'il y a une erreur sur cette ligne
    addresse 0x5AA5
    on ecrit plutot org
    ensuite quel est ce pic qui a plus de 20K de ram je n'en ai jamais vue, il y a aussi ton programme qui n'est pas complet, tu fais plein de call mais on ne voie nulle part les labels concernés.Je pense aussi que tu devrais revoir ton utilisation des tableaux,car tu pointes avec FSR mais tu ne recuperes pas le valeur qui ce trouve dans INDF.D'apres ce que j'ai compris, c'est un peut confu, tu envoies le compteur dans l'eeprom et tu effaces le tableau des 40 valeurs, je ne suis pas sûr que ce soit ce que tu voulais au debut.
    Gilles

  3. #3
    invitec316b1ca

    Re : il me rend fou ce prof

    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    ;
    ; Software License Agreement
    ;
    ; The software supplied herewith by Microchip Technology Incorporated
    ; (the "Company") for its PICmicro® Microcontroller is intended and
    ; supplied to you, the Company’s customer, for use solely and
    ; exclusively on Microchip PICmicro Microcontroller products.
    ;
    ; The software is owned by the Company and/or its supplier, and is
    ; protected under applicable copyright laws. All rights are reserved.
    ; Any use in violation of the foregoing restrictions may subject the
    ; user to criminal sanctions under applicable laws, as well as to
    ; civil liability for the breach of the terms and conditions of this
    ; license.
    ;
    ; THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES,
    ; WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
    ; TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    ; PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
    ; IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
    ; CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    ;
    ; Filename: AN976.asm
    ; Date: February 1, 2005
    ; File Version: 1.0
    ; Assembled using: MPLAB IDE 7.00.00.0
    ;
    ; Author: Chris Parris
    ; Company: Microchip Technology, Inc.
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    ;
    ; Files required: p16f877a.inc
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    ;
    ; Purpose:
    ;
    ; This application note is intended to serve as a reference for
    ; communicating with Microchip’s I2C serial EEPROM devices with the
    ; use of the PICmicro MSSP module.
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    ;
    ; Program Description:
    ;
    ; This program illustrates the following I2C operations:
    ; - Byte Write
    ; - Byte Read
    ; - Page Write
    ; - Sequential Read
    ; For the byte operations, 1 data byte is read from/written to
    ; the 24LC256 device. For the page write and sequential read, 16
    ; data bytes are transferred. All operations start at address 0x5AA5.
    ; All timings are set to meet the 100 kHz spec, and assume a 10 MHz
    ; crystal oscillator is used. If a different crystal frequency is
    ; desired, the value of SSPADD (currently 0x18) must be updated in
    ; Init. Also, note that no action is taken if the device does not
    ; respond with an ACK bit when one is expected.
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
    LIST P=16F877A
    ; Port C pin descriptions
    ; SCL bit = 3
    ; SDA bit = 4
    ;
    ; 10MHz crystal is being used, thus each instruction cycle = 400 ns
    ;
    ;*******************RAM register definitions******************* ***
    datai equ 20h ; Data input byte buffer
    datao equ 21h ; Data output byte buffer
    bytecount equ 22h ; Counter for byte loops
    pollcnt equ 23h ; Counter for polling loops
    loops equ 24h ; Delay loop counter
    loops2 equ 25h ; Delay loop counter
    ;*******************Macro definitions******************* **********
    WRITE_ADDR equ b'10100000' ; Control byte for write operations
    READ_ADDR equ b'10100001' ; Control byte for read operations
    ;*******************Include file************************** ********
    include "p16f877a.inc" ; Include file for a PIC16F877A
    errorlevel -302 ; Suppress message 302 from list file
    ;***************************** ****************************** ******
    org 0x000 ; Set the reset vector
    goto start ; Go to the beginning of main
    ;*******************Begin Main Program*********************** *****
    start
    call Init ; Initialize device
    call ByteWrite ; Byte Write operation
    call ByteRead ; Byte Read operation
    call PageWrite ; Page Write operation
    call SequentialRead ; Sequential Read operation

    nop
    goto $-1 ; Loop here forever

  4. #4
    invitec316b1ca

    Re : il me rend fou ce prof

    Salut

    Je suis parti de cet exemple, mais sur ce site, il n’est pas possible
    De joindre des fichiers, donc tu as l’entête.

    Je débute et ce n’est pas évident
    Merci

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

    Re : il me rend fou ce prof

    http://www.abcelectronique.com/bigonoff/
    Va voir ci-dessus.
    Gérard.

  7. #6
    invitec316b1ca

    Re : il me rend fou ce prof

    Salut Gerard


    Merci, rien de vraiment intéressant sur le site de bigonoff, c’est des cours de base,
    Je sais pas si tu as remarqué mais sur les forums étrangers, il commente toujours
    Leur réponse avec des exemples, que ça soit pour les questions ou des réponses,
    Et en France, par des réponses très vagues, une réponse avec un exemple
    C’est plus parlant, et la personne qui répond ne peut pas raconter n’importe quoi.

    A plus

  8. #7
    Gérard

    Re : il me rend fou ce prof

    Alors va sur les sites étrangers qui sont "si bien".

    Je pense que Bigonoff est le REFERENCE et tu te permets, du haut de tes 18 ans, de critiquer.
    Fais mieux et tu reviens !
    Gérard.

  9. #8
    DavidDB

    Re : il me rend fou ce prof

    Salut,

    Comme cela ne fonctionne pas sur un forum, on va voir sur un autre...

    Décide toi à poser une question plus précise!!!

    Si tu ne trouves rien d'intéressant dans les cours de BigOnOff, je crains que personne ne pourra t'aider...

    David.

  10. #9
    Gérard

    Re : il me rend fou ce prof

    D'accord avec DavidDB !
    Bon WE,
    Gérard.

  11. #10
    invitec316b1ca

    Bigonoff

    Salut

    Bien sur que Bigonoff est la plus grande référence sur internet et ses cours
    Sont de haut niveau, et vous pouvez chercher son égal, vous aurez du mal
    A trouver, c’est mon avis.
    Et quand j’ai dit rien d’intéressant c’est par rapport à mon problème.


    A plus
    ;----------------------------------------------------
    ; Envoie le buffer dans l'eeprom
    LECT_data .40
    ; LECT_data contient les données à envoyer
    ; eepa contient l'adresse d'écriture
    ;-----------------------------------------------------------------------------
    eep_sendbuf
    call eep_adress ; Condition de Start

    bsf STATUS,RP0 ; passer en banque1
    movf LECT_data,w ; on met LECT_data dans W
    movwf FSR ; on met LECT_data dans le registre FSR

    eep_charge
    movf INDF,w ; on met l'octet dans W
    call Write24C ; appel routine d'ecriture
    incf FSR,f ; incrémenter pointeur buffer
    movf INDF,w ; on met l'octet dans W
    xorlw 0x0D ; comparer octet envoyé avec Line-feed
    btfss STATUS,Z ; égalité?
    goto eep_charge ; non pas fini, suivant

    incf FSR,f ; incrémenter pointeur buffer
    movf INDF,w ; charger un octet
    xorlw 0x0A ; comparer octet envoyé avec Line-feed
    btfss STATUS,Z ; égalité?

    goto Continue ; non pas fini, suivant
    bcf STATUS,RP0 ; passer en banque 0
    call I2CSTOP ; oui fin du transfert
    return ; et retour

    Continue
    decf FSR,f ;
    goto eep_charge ; non pas fini, suivant

    ;-----------------------------------------------------------------------------
    Write24C
    MOVWF I2C_VAR1 ; Octet a envoyer mis dans VAR1. ;
    CALL WtoI2C ; Envoyer l'octet
    CALL I2CgetACK ; Acquerir l'ACK
    CALL I2CSTOP ; STOP
    BTFSS I2C_BOOL,I2CACK ; Tester l'ACK :
    GOTO MemNonDispo1 ; Si PB : tant pis, abreger !

    WtoI2C
    MOVLW 8 ; - 8 (nb de decalages) dans VAR2.
    MOVWF I2C_VAR2 ;

  12. #11
    DavidDB

    Re : il me rend fou ce prof

    Salut,

    Si tu regardais sur l'autre forum, tu verrais qu'une personne (ce n'est pas moi, car j'estime que cette démarche ne t'aide pas...) a fait le travail à ta place et a mis le code en ligne.

    De plus, il me semble que ce code est tout droit sortis des cours de BigOnOff!!!

    David.

  13. #12
    invitec316b1ca

    Re : il me rend fou ce prof

    Salut,

    Si tu regardais sur l'autre forum, tu verrais qu'une personne (ce n'est pas moi, car j'estime que cette démarche ne t'aide pas...) a fait le travail à ta place et a mis le code en ligne.


    salut

    Est il bien écris et maintenant il y a peut etre des
    erreurs.

    A plus

  14. #13
    invitec316b1ca

    Re : il me rend fou ce prof

    ;***************************** ****************************** ******************
    ; *
    ; NOM: lum_eep de Bigonoff *
    ; Date: 06/07/2002 modifier 06/01/2006 *
    ; Version: 1.0 *
    ; Circuit: Platine d'expérimentation *
    ; Date: modifier 06/01/2006 *
    ; Auteur: plombier *
    ; *
    ;***************************** ****************************** ******************
    ; *
    ; Fichier requis: P16F876.inc *
    ; *
    ;***************************** ****************************** ******************
    ; *
    ; Notes: L'eeprom est connectée sur le bus I2C (SCL + SDA) *
    ; A2, A1, et A0 de l'eeprom sont connectées à la masse *
    ; 8 LEDs sont connectées sur le PORTB *
    ; LE quartz travaille à 20MHz. *
    ; *
    ;***************************** ****************************** ******************


    LIST p=16F876 ; Définition de processeur
    #include <p16F876.inc> ; fichier include



    ;-----------------------------------------------------------------------------
    ; Envoie le buffer dans l'eeprom
    ; buffer contient les données a envoyer
    ; buflen contient le nombre d'octets a envoyer (détruit apres l'exécution)
    ; eepa contient l'adresse d'écriture
    ;-----------------------------------------------------------------------------

    ;***************************** *** buffer 40 octets **************************

    eep_sendbuf40

    clrf eepa ; adresse d'écriture = 00 a 27
    clrf eepa+1 ; idem poids faible
    call eep_adress ; initialiser pointeur adresse
    movlw lect_data ; 40 octets présents
    movwf FSR ; dans pointeur
    CLRF INDF ; on efface l'adresse pointée par FSR
    INCF FSR ; FSR pointe maintenant sur l'adresse suivante
    movwf buflen ; placer dans le compteur d'octets
    call eep_sendb1 ; charger

    ;***************************** *** buffer 4 octets ****************************

    eep_sendbuf04

    clrf eepa ; adresse d'écriture = 0x28 a 32
    movlw 0x28 ; adresse poids faible
    movwf eepa+1 ; initialiser
    movlw key_data ; 4 octets présents
    movwf FSR ; dans pointeur
    CLRF INDF ; on efface l'adresse pointée par FSR
    INCF FSR ; FSR pointe maintenant sur l'adresse suivante
    movwf buflen ; placer dans le compteur d'octets
    call eep_sendb1 ; charger

    ;***************************** *** suivant ****************************** ******
    eep_sendb1

    movf INDF,w ; charger un octet
    call i2c_write ; l'envoyer
    incf FSR,f ; incrémenter pointeur buffer
    decfsz buflen,f ; décrémenter nbre d'octets restants
    goto eep_sendb1 ; pas fini, suivant
    call i2c_stop ; fin du transfert
    return ; et retour

    ;***************************** ****************************** ******************
    ; ENVOYER UN OCTET *
    ;***************************** ****************************** ******************
    ;-----------------------------------------------------------------------------
    ; L'octet est passé dans W
    ;-----------------------------------------------------------------------------
    i2c_write
    movwf SSPBUF ; lancer l'émission de l'adresse en mode écriture
    bsf STATUS,RP0 ; passer en banque 1
    IWAIT SSPSTAT,R_W ; attendre émission terminée
    return ; et retour


    ;***************************** **traitement des lectures********************** *


    clrf eepa ; adresse de lecture = 00
    clrf eepa+1 ; idem poids faible

    loop1
    call eep_adress ; initialiser pointeur d'adresse
    call i2c_stop ; fin transaction
    movlw D'65336' ; 65336 octets a lire
    movwf buflen ; dans compteur d'octets

    loop2
    call eep_lire ; lire l'octet courant
    movwf PORTB ; envoyer sur PORTB
    call wait ; attendre 0.5s
    decfsz buflen,f ; décrémenter compteur d'octets
    goto loop2 ; pas dernier, suivant
    goto loop1 ; dernier, on recommence

  15. #14
    invitec316b1ca

    Re : il me rend fou ce prof

    Bonjour

    C’est le programme du plombier,mais il a oublier d’effacer la RAM.

    ; Effacer RAM banque 0
    ; ---------------------
    bcf STATUS,RP0 ; sélectionner banque 0
    movlw 0x20 ; initialisation pointeur
    movwf FSR ; d'adressage indirect

    init1;--------------------------;

    clrf INDF ; effacer ram
    incf FSR,f ; pointer sur suivant
    btfss FSR,7 ; tester si fin zone atteinte (>7F)
    goto init1 ; non, boucler

    ; autoriser interruptions (banque 0)
    ; ----------------------------------
    clrf PIR1 ; effacer flags 1
    clrf PIR2 ; effacer flags 2
    Call init2 ; Initialiation USART
    call Init_I2c ; Initialiation I2c
    ; autoriser interruptions (banque 0)

    bsf INTCON,GIE ; valider interruptions
    goto star;-------; programme principal

Discussions similaires

  1. lenteur de mon pc me rend fou!
    Par invite1d621120 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 42
    Dernier message: 05/07/2007, 22h29
  2. Le poisson ca rend intelligent !!???!!!
    Par invitea250c65c dans le forum Santé et médecine générale
    Réponses: 3
    Dernier message: 30/08/2006, 09h53
  3. Prépa AGREG ou thèse:prof ou prof-chercheur ?
    Par invite2c6da301 dans le forum Orientation après le BAC
    Réponses: 5
    Dernier message: 24/07/2006, 14h41
  4. Problème qui rend chêvre...
    Par invite78c58f11 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 06/07/2005, 22h37
  5. emule me rend un mule
    Par invitebb36e395 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 14/06/2005, 22h31
Découvrez nos comparatifs produits sur l'informatique et les technologies.