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

Horloge à persistance retinienne avec un PIC 16F84A




  1. #1
    SpeedYFloK

    Smile Horloge à persistance retinienne avec un PIC 16F84A

    Bonsoir tout le monde !

    Voilà je voudrais me lancer dans la réalisation d'une Horloge à persistance rétinienne avec un PIC 16F84A.
    Ne connaissant rien aux micro-contrôleurs j'ai lu le fabuleux Cours de Bigonoff (Merci a lui !!).

    Comprenant maintenant un peu mieux les Pics, j'ai décidé de me lancer dans la programmation des PIC en C avec CC5X.

    Je dispose d'un programmateur PIC que l'on ma prêté le PIC LEMON (Visible sur http://www.varicap.com/ , Smartcards, Pic Lemon)


    J'ai quelques questions: (Pour l'instant )

    - Il est dit que se programmateur prend en charge les Pics 16F8X or je dispose d'un 16F84A Je me demande si cela pose un problème ? (et je pense que oui, malheureusement, car je n'ai pas réussi à mettre en œuvre les exercices de Bigonoff, tel que le clignotement d'une led)

    - Au niveau de la programmation en C à quel moment dit on au compilateur les options choisies ? (Je pense au Watchdog, Code Protection ...)

    -Où est le piège de la programmation en C pour les PIC ? Car cela semble si simple comparé à la programmation en assembleur.

    Merci d'avance pour vos réponses et votre aide.

    FloK

    -----


  2. Publicité
  3. #2
    laurentdu38

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Salut,

    dans certains logiciel, ces options se valident au moment du transfert de ton fichier .hex vers ton microcontrôleur, ton PIC en l'occurance.

    Maintenant quel logiciel utilise tu?

    Apparement si tu utilise CC5X, c'est que tu utilise MPLAB, mais est-ce que ton programmateur est compatible avec MPLAB, ou bien as tu un logiciel spécifique, qui va avec?

    Pour le Watchdog, tu peux le désactiver dans ton programme, fichier .C .

    En espérant t'avoir aidé un peu.


    ++

    Laurent

  4. #3
    VIIV

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Citation Envoyé par SpeedYFloK Voir le message
    - Il est dit que se programmateur prend en charge les Pics 16F8X or je dispose d'un 16F84A Je me demande si cela pose un problème ? (et je pense que oui, malheureusement, car je n'ai pas réussi à mettre en œuvre les exercices de Bigonoff, tel que le clignotement d'une led)

    - Au niveau de la programmation en C à quel moment dit on au compilateur les options choisies ? (Je pense au Watchdog, Code Protection ...)

    -Où est le piège de la programmation en C pour les PIC ? Car cela semble si simple comparé à la programmation en assembleur.
    Le meilleur choix de programmateur est un PicKit2 de Microchip.

    Si tu travailles avec MPLAB tu as dans un menu déroulant "configuration bits" ou tu peux les choisir d'une manière graphique, ou alors tu peux les déclarer dans le code par un #pragma config (par ex) LVP = OFF

    Le C par rapport au ASM est tellement plus simple et plus compréhensible, mais chaque ligne de code en C doit être retranscrite en ASM par le compilateur au moment de la compilation, donc au final un simple if en C peut être traduit en 10-20 instructions ASM, donc l'exécution de ton programme sera plus longue et ton code C ne sera pas vraiment traité en temps réel.


  5. #4
    SpeedYFloK

    Smile Horloge à persistance retinienne avec un PIC 16F84A

    ReBonsoir,

    Merci pour vos réponses rapides!

    Pour ce qui concerne le programmateur: je l'utilise avec le IC-ProG (où effectivement je peu modifier ses options avant transfert), à priori il n'y a pas de problème a ce niveau puisque qu'il me dit que le programme est bien écrit, et passe la vérification de IC-ProG avec succès. Mais une fois sur la platine d'essai rien ne se passe. A mon établissement j'ai pu regardé aux bornes dû quartz il y a bien des oscillations.

    J'utilise en effet MPLab et j'ai pu donc voir le menu en question.

    Cela confirme l'idée que je me faisais sur la programmation en C par rapport à la programmation en asm.

    Merci beaucoup à Laurent et VIIV pour leurs réponses.

    Donc:
    -Je me demande en faite si c'est le fait que ce soit un Pic 16F84A, car il est dit dans beaucoup d'endroit (FAQ du cours de Bigonoff par exemple) que la différence entre le 16F84A et le 16F84 ne se fait pas au niveau de la programmation mais au niveau de l'électricité. Donc comme le programmateur est fait pour un 16F8X peut il convenir à un 16F84A.

    -Quand on programme en C où passes toutes les étapes d'initialisations de la mémoire que l'on voit en asm ?

    -Quel est le principe théorique de l'oscillateur a quartz avec les deux condos qui permettent de cadencer les opérations du µC ?

    FloK

  6. #5
    SpeedYFloK

    Wink Horloge à persistance retinienne avec un PIC 16F84A

    ReReBonsoir,

    Petite note:
    Quand je dit principe théorique de l'oscillateur ce n'est pas le fait que le quartz ne résonne pour une fréquence précise qui m'intéresse.
    Mais qu'est ce qu'envoie le PIC ?
    J'ai lu sur certains sites que les deux condensateurs permettent de "baisser" la fréquence propre du quartz.
    Comment sa marche ?

    FloK

    PS: Tout cela m'intéresse vraiment, c'est pour mon TIPE de cette année, c'est à dire dans le thème de: l'information!

    Bonne Nuit à tous !

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

    Question Horloge à persistance retinienne avec un PIC 16F84A

    Personne à une petite idée ?

  9. #7
    mictour

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Bonjour VIIV,

    As-tu bien "expliqué" à ton compilateur quel configuration tu veux et quel PIC tu utlises ?
    Un petit exemple :

    #pragma chip PIC16F877A

    /*
    XT oscillator
    WDT off
    PWRT on
    Brown out on
    code protection off
    EE protect off
    WRT off
    HV on
    debug off
    Ce qui donne :
    */

    #pragma config |= 0x3F71 //

    Il est recommendé de faire la "config" dans le logiciel plutôt que dans le programmateur.

    Bonne prog, mictour.

  10. Publicité
  11. #8
    mictour

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    ..... Au fait connais-tu ce lien :
    http://hhollard.club.fr/prog_pic_c.htm
    Bonne lecture, mictour.

  12. #9
    maximilien

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Salut a tous!
    Je travaille en ce moment meme sur une horloge avec 4 afficheurs 7 segment et a pertinence rétinniene!! Et c'est avce un 16F84!
    Je t'explique: j'ai 4 bouton poussoir pour le réglage de l'heure et du réveil (a oui mon horloge fait réveil!!), la base de temps est obtenu grace a un diviseur de tps (CD4521 + quartz) ce qui me donne la pulsation de la seconde et qui va sur l'entrée d'interuption RBO du PIC. Pour gagner en entrées/sorties du pic j'utilise un décodeur BCD-7segment (CD4543) et pour choisir un des 4 afficheurs un multiplexeur 2 vers 4!!
    Voila je peut envoyer tout ca cad le schéma le board et le programme en C (sous MPLAB et HIGHTECH).
    Contact moi si tu le souhaite!

  13. #10
    SpeedYFloK

    Wink Horloge à persistance retinienne avec un PIC 16F84A

    Salut tout le monde,

    Merci Mictour pour le lien mais je le connaissais, c'est d'ailleurs grâce à ce site que je me suis décidé à passer à la programmation des PIC en C. Merci pour les précisions en ce qui concerne les configurations.

    Mon problème ne se trouve pas au niveau de la programmation je pense, car même avec des programmes auxquels je ne modifie rien écrit pour PIC 16F84A je n'obtient rien.
    A la fin du cours de Bigonoff on peut lire:
    "- Le courant typique lors de la programmation flash passe de 7,3 à 3 mA."
    En parlant des différences entre les PIC 16F84 et 16F84A.
    Je me demande si mon problème viens d'ici ??

    Maximilien je suis preneur, même si je ne compte pas utiliser de périphérique externe pour la gestion de l'heure, mais juste le pré-diviseur du PIC.

    D'ailleurs il me viens une question, je pense que la réponse et oui mais juste une petite vérification:
    Peut-on utiliser n'importe quel quartz avec un micro-contrôleur temps qu'il ne dépasse pas la valeur spécifié sur le PIC ?

    Bonne soirée.

  14. #11
    mictour

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Bonjour à toutes et à tous,

    ... Avec mes toutes excuses pour avoir confondu vos pseudos !
    Est-tu sur que le problème n'est pas matériel ?
    Sinon, pour le moment, je ne vois pas ...

    Pour le quartz, pas de problème mais bien sur il faut adapter la config.

    Bonne journée, mictour.

  15. #12
    SpeedYFloK

    Wink Horloge à persistance retinienne avec un PIC 16F84A

    Bonsoir tout le monde!

    Voila ça marche! Mais aucune idée de se qui a pu me bloquer.

    Je m'attaque maintenant à la programmation du PIC pour l'horloge à persistance rétinienne proprement dite !
    Pour ceux qui ne savent pas se que c'est ici: http://www.natureetdecouvertes.com/p...efArt=40115900

    Je m'inspire du très bon site TheoElec http://theoelec.free.fr/index.php?page=hp5&lang=fr. Que je vous invite à visiter!

    Le principe est simple: le disque tourne et le PIC sait si il à fait un tour grâce à un optocoupleur à fente (barrière photo-électrique)!

    Il faut maintenant comprendre tout cela !
    Vous pouvez télécharger les fichiers .c sur ce site! Je n'ai pas réussi à les joindre! J'insiste bien sur le fait que ce n'est pas de moi!
    Ce sont des fichiers pour le compilateur PIC-C de CCS pour le PIC 16F628, il faut que je comprenne tout pour pouvoir tout réécrire sous CC5X pour le PIC 16F84A. (Certains me dirons prends la version gratuite de CCS et le tour est joué! Mais non! Car en m'obligeant à changer de compilateur je m'oblige à tout comprendre et c'est mon but !! )

    Je comprend très bien le fichier affichage.c qui est très ingénieux! C'est lui qui génère l'affichage des chiffres !
    Mais le fichier test.c reste très obscur pour moi !
    Voici quelques parties du code que je ne comprend pas :

    Code:
    #use delay(clock=20000000)
    Que signifie cette ligne qui se trouve au début du code?

    Code:
    #int_TIMER1
    TIMER1_isr()
    De même!

    Et enfin:
    Code:
     int8 larg;
    Il me semble que "int" c'était pour déclarer un entier! Et que si on met "8" c'était pour signifier que l'on en déclaré huit or ici il y en a bien moins que huit ! Alors ?

    Merci d'avance!
    Bonne nuiT

  16. #13
    SpeedYFloK

    Re : Horloge à persistance retinienne avec un PIC 16F84A

    Voici les quatre principaux fichiers disponibles sur http://theoelec.free.fr/index.php?page=hp5&lang=fr ! Ils ne sont pas de moi !

    Le affichage.jpg est le code affichage.c du site de TheoElec avec des matrices, que j'ai faites, pour comprendre le principe des différents cas du switch!

    Voila !
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  17. #14
    SpeedYFloK

    Wink Horloge à persistance retinienne avec un PIC 16F84A

    Bonsoir,

    J'ai trouvé :
    -pour le chiffre après int c'est le nombre de bit réservé à la variable!!

    -pour:
    Code:
    #int_TIMER1
    TIMER1_isr()
    #int_TIMER1 c'est l'interruption basé sur le TIMER1 du PIC!
    Mais ce qui est étrange c'est le TIMER1_isr() Je crois que c'est pour placer l'interruption à l'adresse 0x4 ! Mais je suis pas sûr, quelqu'un peu confirmer ?

    -quant au:
    Code:
    #use delay(clock=20000000)
    Il semblerait que cela permet de dire au compilateur CCS quel quartz on utilise!

    Le code se fait de moins en moins obscur chouette !

    Reste que à la fin du programme test.c on trouve un :
    Code:
    enable_interrupts(GLOBAL)
    Dans le "user manual " de CCS on trouve:
    This directive causes the following function to replace the compiler interrupt
    dispatcher. The function is normally not required and should be used with
    great caution. When used, the compiler does not generate start-up code or
    clean-up code, and does not save the registers.
    En parlant de l'interruption GLOBAL, donc je ne vois pas son utilité!
    Une idée ?

    Merci et bonne soirée !

  18. #15
    SpeedYFloK

    Question Horloge à persistance retinienne avec un PIC 16F84A

    Personne ne sait ?

    Je cherche à comprendre le fonctionnement de l'oscillateur à quartz avec les deux condensateurs aux bornes du PIC.
    J'ai regardai ce qu'il y a aux bornes des deux condensateur en fonctionnement on observe des oscillations sinusoïdales de fréquences celles du quartz, mais elle n'ont pas même amplitudes!
    Comment cela s'explique ?
    Avec l'impédance du quartz ? Se qu'envoie le PIC ? ...

    Merci
    FloK

Sur le même thème :

Discussions similaires

  1. Horloge à persistance retinienne avec un PIC 16F84A
    Par SpeedYFloK dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 28/10/2008, 21h57
  2. tipe persistance rétinienne
    Par prépalaz dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 03/01/2008, 12h47
  3. tipe persistance rétinienne
    Par prépalaz dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 03/01/2008, 12h43
  4. TPE 1ereS persistance retinienne
    Par paupo67 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 16/12/2007, 11h21
  5. Persistance retinienne et TV
    Par azertylr dans le forum Biologie
    Réponses: 4
    Dernier message: 28/02/2005, 18h55