Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 47

wav player avec pic16F84a et 24C256



  1. #1
    amitech82

    wav player avec pic16F84a et 24C256

    Bonjour...j'ai appris recemment la programmation du PIC16F84A et j'ai réuissi a gérer les eeproms 24CXXX avec le protocole I2C...j'ai décidé alors de realiser un wav player en utilisant le 16F84A avec une eeprom 24C256 ou stocker un fichier wav converté avec audacity en fichier RAW(SANS ENTETE) 8BITS/8KHZ MONO puis en fichier .BIN;mais j'ai pas reuissi a reproduire le message sonnore;toujour un bruit de Tic tac...pour info j'ai essayé aussi le schema de mr Alain Reboux(magazine electronique pratique 277 page 48:"un pic qui parle") sur ISIS PROTEUS mais il n'a pas fonctionné...ca fait 2 OU 3 semaines que je cherche mais je trouve pas ou est le probleme...svp aider moi...et merci.

    NB:ci joint; mon schema sur ISIS, le fichier MikroC du programmation du PIC ainsi que le schema de Mr Alain Reboux.

    -----

    Fichiers attachés Fichiers attachés

  2. Publicité
  3. #2
    MiKL.66

    Re : wav player avec pic16F84a et 24C256

    Bonjour,

    je n'ai jamais vu un code aussi ennuyeux ...
    C'est toi qui l'a écrit ou tu l'as trouvé sur le net ?

    Et sinon, pourquoi ne pas choisir un PIC avec le bus I2C ?

  4. #3
    paulfjujo

    Re : wav player avec pic16F84a et 24C256

    bonjour,

    ATTENTION: adresse EEPROM sur 1 byte ? il faut un Int pour adresser une 24LC256
    envoi du MSB et du LSB
    256 Kbits => 32 K


    Rien qu'avec les delais interne aux sous programmes I2C
    pour lire les 8 bits + le temps de reponse intrinseque de l'EEPROM
    ce qui fait une frequence d'echantillonage probablement inferieure à 1 KHz

    il faut utiliser une RAM ou une FRAM à la place de l'eeprom.
    ou un PIC plus performant avec plus de RAM.pouvant contenir le wav.
    Dernière modification par paulfjujo ; 31/05/2015 à 14h12.

  5. #4
    HULK28

    Re : wav player avec pic16F84a et 24C256

    +1.
    Tu m'étonnes que c'est codé avec les pieds....
    Tout est bien qui finit.

  6. #5
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Le montage est tout aussi bidon que le code...
    Tout est bien qui finit.

  7. A voir en vidéo sur Futura
  8. #6
    amitech82

    Re : wav player avec pic16F84a et 24C256

    merci bien pour votre reponse...c'est moi qui a ecrit le code...l'essenciel en cette etape est de lire l'eeprom et d'envoyer l'octet sur le portb avec une periode de 125us(8KHZ)...est c'est verifier avec ce code banal...en plus je suis novice en terme de programmation MikroC...
    En reponse a votre question...pour moi, pour bien maitriser un protocole il faut essayer de le coder...c'est juste pour l'apprentissage du protocole I2C.
    merci.

  9. Publicité
  10. #7
    paulfjujo

    Re : wav player avec pic16F84a et 24C256

    as-tu verifié si l'adressage eeprom est correct (adresse envoyée en 2 temps ,donc sur 2 bytes diffents). ?
    Comment as-tu rempli la 24LC256 avec ton wav binarisé ?

  11. #8
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par amitech82 Voir le message
    merci bien pour votre reponse...c'est moi qui a ecrit le code...l'essenciel en cette etape est de lire l'eeprom et d'envoyer l'octet sur le portb avec une periode de 125us(8KHZ)...est c'est verifier avec ce code banal...en plus je suis novice en terme de programmation MikroC...
    En reponse a votre question...pour moi, pour bien maitriser un protocole il faut essayer de le coder...c'est juste pour l'apprentissage du protocole I2C.
    merci.
    C'est louable d'avoir fait cet effort
    Tout est bien qui finit.

  12. #9
    amitech82

    Re : wav player avec pic16F84a et 24C256

    La premiere adresse de l'eeprom est 0, envoyé 2 fois successivement :MSB(0b00000000) et le LSB(0b00000000),puis l'eeprom incrimente l'adresse automatiquement,en plus je vous assure que le pic lire les données de l'eeprom avec ce code sans aucun probleme.Pour le schema,je crois que c'est presque le meme que celui cité dans la magazine electronique pratique n'277 par Mr Alain Reboux.

  13. #10
    amitech82

    Re : wav player avec pic16F84a et 24C256

    merci.j'essaye d'apprendre.

  14. #11
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Dans mikroC tu as une fonction Soft_I2C, pour les µC n'ayant pas d'I2C hard, qui t'allègerait considérablement ton code.
    Tout est bien qui finit.

  15. #12
    freepicbasic

    Re : wav player avec pic16F84a et 24C256

    Le fichier zip original ci-joint.
    Le montage fonctionne en qualité 8khz mono 8bits 4 secondes sur une 24C256 (32koctets)

    Quant au compilateur Basic original utilisé par l'auteur, je ne le connais pas ...
    Fichiers attachés Fichiers attachés
    A+, pat

  16. Publicité
  17. #13
    amitech82

    Re : wav player avec pic16F84a et 24C256

    oui c'est verifier...le code fonctionne tres bien...et le pic peut lire les données de l'eeprom sans aucun probleme.Pour le fichier wav...j'ai recuperer un fichier wav de 32k depuis un projet similaire sur le net,puis j'ai converti cette fichier avec audacity en RAW(wav sans entete),frequence d'ech.8000HZ sur 8bits mono.apres j'ai ouvert le fichier raw avec icprog qui permet de programmer l'eeprom ou d'exporter le fichier en format binaire.

  18. #14
    amitech82

    Re : wav player avec pic16F84a et 24C256

    merci bcp, je vais voir cette fonction sur MikroC.

  19. #15
    amitech82

    Re : wav player avec pic16F84a et 24C256

    je vous remercie bcp pour ce partage...j'espere que sa va m'aider a trouver le probleme.
    Vous pouvez reproduire le projet de PICQUIPARLE de mr.Reboux sur ISIS pour savoir est ce qu'il fonctionne ou non?

  20. #16
    freepicbasic

    Re : wav player avec pic16F84a et 24C256

    pour savoir est ce qu'il fonctionne ou non?
    Avec le fichier hex original post #12 ça fonctionne !
    A+, pat

  21. #17
    HULK28

    Re : wav player avec pic16F84a et 24C256

    C'est un peu normal que ça ne fonctionne pas.
    Si tu lis le code assembleur tu dois pouvoir trouver ton (plutôt tes) erreurs.
    Tout est bien qui finit.

  22. #18
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par freepicbasic Voir le message
    Avec le fichier hex original post #12 ça fonctionne !
    c'est vraiment bizarre...j'ai reproduit le schema de picparle avec le hex et le message originaux...et toujour ca ne fonctionne pas!
    ci-joint le schema sur isis7.
    Fichiers attachés Fichiers attachés

  23. Publicité
  24. #19
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par HULK28 Voir le message
    C'est un peu normal que ça ne fonctionne pas.
    Si tu lis le code assembleur tu dois pouvoir trouver ton (plutôt tes) erreurs.
    et pourtant il gere l'eeprom(lire et ecrire) correctement!...j'ai verifier aussi la frequence...c'est exactement 125us pour chaque octet envoyer sur le portb.

  25. #20
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par freepicbasic Voir le message
    Avec le fichier hex original post #12 ça fonctionne !
    est ce que vous l'avez essayé sur isis? si oui..priere de partager le fichier isis.

  26. #21
    antek

    Re : wav player avec pic16F84a et 24C256

    Faire ça avec un 84, j'hésite entre courageux et maso . . .

  27. #22
    freepicbasic

    Re : wav player avec pic16F84a et 24C256

    met le schéma sous forme jpg ou autre lisible par tous !
    (isis n'étant pas compatible avec lui même LOL , les versions anciennes ne lisent pas les nouvelles...)

    De plus isis ne saura pas faire du temps réel à mon avis ...

    Test en réel !
    Dernière modification par freepicbasic ; 31/05/2015 à 17h40.
    A+, pat

  28. #23
    freepicbasic

    Re : wav player avec pic16F84a et 24C256

    Faire ça avec un 84, j'hésite entre courageux et maso . . .
    Le problème n'est pas le pic mais le 24Cxx qui lui est vraiment lent.
    A+, pat

  29. #24
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Tu peux m'expliquer ça par
    exemple:

    Code:
    dataByteReceive.B7=SDA_LINE;
    et où se trouve l'adresse READ et WRITE de ton EEPROM?
    Tout est bien qui finit.

  30. Publicité
  31. #25
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Je crois que tu n'as pas bien compris la gestion d'un octet en C... ça ne s'utilise pas comme un registre qui lui est géré par le compilateur pour avoir accès à chaque bit.
    Pour t'en convaincre il suffit d'ouvrir le répertoire "defs" de ton compilateur ou tu trouveras le fichier .c de ton µC
    Donc ça ne peut fonctionner en l'état.
    Tout est bien qui finit.

  32. #26
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Voici comment déclarer un champ de bits:

    Code:
    #define SCL_LINE PORTA.F0
    #define SDA_LINE PORTA.F1
    #define EEPROM_DevAdr_Wr    0  // plus lisible dans le programme
    #define EEPROM_DevAdr_Rd    1
    
    typedef struct
    {
         unsigned short
             B0: 1,
             B1: 1,
             B2: 1,
             B3: 1,
             B4: 1;
             B5: 1;
             B6: 1;
             B7: 1;
    }bit_field;
    
    
    bit_field blocSel_rw, dataByteReceive; // tu déclares ensuite de nouveaux champs de bits exploitant la même définition que bit_field.
    La structure bit_field est le prototype que tu peux réutiliser à volonté grâce à l'appellation typedef qui crée un type nouveau de variable "bit_field".
    Tout est bien qui finit.

  33. #27
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par HULK28 Voir le message
    Tu peux m'expliquer ça par
    exemple:

    Code:
    dataByteReceive.B7=SDA_LINE;
    ici le bit 7 du variable déclaré dataByteReceive prend l'etat de la ligne SDA.

    et où se trouve l'adresse READ et WRITE de ton EEPROM?
    l'operation read ou write revient a l'etat de bit 0 du variable unsigned char blocSel_rw:
    blocSel_rw=0b10100000 operation d'ecriture.
    blocSel_rw=0b10100001 operation de lecture.

  34. #28
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par HULK28 Voir le message
    Voici comment déclarer un champ de bits:

    Code:
    #define SCL_LINE PORTA.F0
    #define SDA_LINE PORTA.F1
    #define EEPROM_DevAdr_Wr    0  // plus lisible dans le programme
    #define EEPROM_DevAdr_Rd    1
    
    typedef struct
    {
         unsigned short
             B0: 1,
             B1: 1,
             B2: 1,
             B3: 1,
             B4: 1;
             B5: 1;
             B6: 1;
             B7: 1;
    }bit_field;
    
    
    bit_field blocSel_rw, dataByteReceive; // tu déclares ensuite de nouveaux champs de bits exploitant la même définition que bit_field.
    La structure bit_field est le prototype que tu peux réutiliser à volonté grâce à l'appellation typedef qui crée un type nouveau de variable "bit_field".
    merci..pour cette idée...je suis novice sur mikroc ...et je sais très bien que mon code est loin d’être parfait...mais j'ai bien dit qu'il fonctionne correctement...j'ai vérifié ça avec 8 leds branchées sur le port b.j'ai fait un delay de 1s entre chaque affichage pour lire la valeur binaire affichée par les leds puis je l'ai comparée au valeur inscrit dans le fichier wav...

  35. #29
    amitech82

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par freepicbasic Voir le message
    met le schéma sous forme jpg ou autre lisible par tous !
    (isis n'étant pas compatible avec lui même LOL , les versions anciennes ne lisent pas les nouvelles...)

    De plus isis ne saura pas faire du temps réel à mon avis ...

    Test en réel !
    Desolé...ci-joint le schema sur ISIS.
    Images attachées Images attachées

  36. #30
    HULK28

    Re : wav player avec pic16F84a et 24C256

    Citation Envoyé par amitech82 Voir le message
    je suis novice sur mikroc
    C'est du C tout simplement, valable sur tout type de compilateur répondant à la norme ANSI C.
    Tout est bien qui finit.

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Création horloge avec PIC16F84A
    Par guijac92 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/11/2009, 21h58
  2. ICD2 avec MPLAB sur un pic16F84A
    Par emule dans le forum Électronique
    Réponses: 12
    Dernier message: 05/10/2008, 15h30
  3. alarme auto avec PIC16F84A
    Par sofiene2005 dans le forum Électronique
    Réponses: 4
    Dernier message: 25/02/2007, 09h47
  4. Developpement appli avec pic16f84a
    Par chental dans le forum Électronique
    Réponses: 7
    Dernier message: 05/12/2006, 08h39
  5. processus avec PIC16F84A
    Par aabdoos dans le forum Électronique
    Réponses: 8
    Dernier message: 10/05/2006, 07h40