Ce programme est "faux" ?
Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

Ce programme est "faux" ?



  1. #1
    barth69

    Ce programme est "faux" ?


    ------

    salut
    je test actuellement un montage que j'ais trouvé sur le net.
    http://www.electroschematics.com/873...speed=noscript
    il est basé sur un detecteur infra rouge HCS501.
    sur le texte qui est proposé avec ce schéma ,il est dit que la led clignote pendant une minute
    ensuite le programme passe en veille et attend l'action du détecteur ,des que t1 conduit la sortie GP0 (relais) devient
    alors active.
    le programme ne fait pas ça du tout !! ,des la mise sous tension ,la led clignote ,ensuite apres une minute
    sans aucune autre action ni du detecteur ,ni de t1 ,le relais est actif ...
    ce programme est faux ?
    merci

    -----

  2. #2
    adrien4607

    Re : ce program est "faux" ?

    Je ne connais pas les PIC mais la partie software à l'aire bonne, a mon avis ton T1 capte peut-être des parasite ou il y a un problème de piste ...
    Au voltmètre mesure la tension qu'il y a sur la PIN 2 (GP5/CLKIN), si c'est à 0 ou proche de 0V il y a un soucis au niveau du T1 ou du capteur, si il y a ou que c'est proche de 5V c'est normale, le problème ne vient peut-être pas de la ... Mais essaye toujours de démarrer ton montage sans le transistor T1 comme ça, quoi qu'il arrive, GP5 serra toujours sur un niveau logique Haut à moins que tes pistes se touche ...

  3. #3
    barth69

    Re : ce program est "faux" ?

    Citation Envoyé par adrien4607 Voir le message
    à moins que tes pistes se touche ...
    montage fait sur plaque d'essaie , mais plus je regarde le programme ,plus je me dit qu'il y'a quelque chose qui ne va pas
    dans ses lignes de code (je ne connait pas assez le language C)

  4. #4
    RISC

    Re : ce program est "faux" ?

    Salut,

    Je vois en tout cas une grosse erreur mais qui dans ce cas précis ne devrait pas porter à conséquence.

    La routine d'interruption devrait être écrite comme suit :

    Code:
    void interrupt()
    {
    // INTCON.GIE = 0;  // erreur, ligne non nécessaire !!!
    if (INTCON.T0IF)
    {
         j++;
         if(j == 80)
         {
             LED = ON;
             Delay_Ms(80);
             LED = OFF;
             j  = 0;
         }
    }
    INTCON.T0IF = 0;
    //INTCON.GIE = 1;   // erreur, ligne non nécessaire et très dangereuse !!!
    }
    a+

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

    Re : ce program est "faux" ?

    merci RISC , idem..
    j'ai eu un doute quand a mon pic 12f675 ,j'ai programmé un simple clignotant
    le pic fonctionne (donc le pic est hors de cause)

    j'ai trouvé exactement le même montage (même type de sensor) mais le gas utilise un 12f635
    je peux le modifier pour utiliser mon 12f675 a la place ? que faut t'il adapter dans le programme ?
    il a même mis une vidéo qui détail le fonctionnement de ce programme qui semble ok lui.
    mais l'adapter a mon pic ? merci.
    http://embedded-lab.com/blog/?p=1334

  7. #6
    adrien4607

    Re : ce program est "faux" ?

    Oui, il y aura surement moyens de l'adapter, avec de la chance il fonctionnera sans modif, il suffit de voir si les registres sont différent ou non, mais je ne m'y connais pas aux niveau des µC Microchip

    As-tu essayé de faire les tests que je t'ais dis ? De forcé le 1 logique sur ta pin 2 sans le T1, ... ?

  8. #7
    barth69

    Re : ce program est "faux" ?

    oui, je l'ai fait ,résultat identique avec ou sans transistor pin 2 forcée ou pas.

    reste plus qu'a trouvé une personne içi connaissant le "C" pour adapter ce programme au 12f675
    http://embedded-lab.com/blog/?p=1334

  9. #8
    adrien4607

    Re : ce program est "faux" ?

    Je crois qu'il ne faut pas être grand programmeur pour voir si les registres utilisé diffère ^^
    En regardant l’empattement des 2 PIC dans le datasheet, la broche qui génère l’interruption a exactement le même non et les entrée/sortie sont toutes des GPx donc il ne devrais pas y avoir de soucis
    Nom : pin pic.jpg
Affichages : 107
Taille : 28,2 Ko

  10. #9
    barth69

    Re : ce program est "faux" ?

    je sais bien les deux pic se ressemble comme deux gouttes d'eau,mais je crois que même avec un 635 ça ne fonctionnera pas,ses lignes de codes ne sont pas bonnes
    GP5 est au niveau bas des la mise sous tension et le reste indéfiniment !!! (fichier .hex que le gas a posté)
    la led idem s'allume des la mise sous tension et le reste .
    j'ais essayé de copier et de compiler avec MikroC le programme ,mais j'obtiens une erreur de compilation si je mets en pic le 12f675.

  11. #10
    sg1

    Re : ce program est "faux" ?

    je viens de tester ton premier lien (1er post) le programme fonctionne tres bien en simulation.
    (ne pas oublier de mettre a l'état haut GP2/3/4 )

  12. #11
    barth69

    Re : ce program est "faux" ?

    Citation Envoyé par sg1 Voir le message
    (ne pas oublier de mettre a l'état haut GP2/3/4 )
    oups !! merci ça marche.

  13. #12
    barth69

    Re : ce program est "faux" ?

    si quelqun maitrise le C merci d'avance.

    lorsque l'alarme a eu lieu ,la led arrete de clignoter et reste allumée fixe et le buzer entre en fonctionnement
    mais et les deux reste ainsi.
    si je veux une alarme de seulement 60 secondes (buzer et led revienne ensuite a l'état de surveillance)
    je dois modifier (si j'ai bien compris ces lignes) mais ou insérer les temporisations et comment ?

    while(1)
    {
    if (LO_IN == LOW)
    {
    INTCON.GIE = 0;
    LED = ON;
    BUZ = ON;
    while(LO_IN == 0);
    }
    else
    {
    LED = OFF;
    BUZ = OFF;
    INTCON.GIE = 1;
    }
    }

  14. #13
    adrien4607

    Re : ce program est "faux" ?

    Si j'ai bien compris, tu veux que le buz et la led reste allumé un certain temps après que le capteur repasse en mode "repos" (1)

    Alors, si c'est le cas, met ton Delay_ms juste après la boucle "while(LO_IN == 0);" comme ça juste après que ton capteur passe en "repos" (on sort de la boucle), ça passe à la "temporisation" qui attend le temps voulu
    Dernière modification par adrien4607 ; 08/01/2014 à 20h29.

  15. #14
    barth69

    Re : ce program est "faux" ?

    tu l'écrit comment ? (synthaxe)
    comme ça ? (exemple 1600ms)
    (nb: pas d'extinction de led ni de buzer avec le programme d'origine,malgré
    la ligne
    else { LED = OFF; BUZ = OFF;

    while(1)
    {
    if (LO_IN == LOW)
    {
    INTCON.GIE = 0;
    LED = ON;
    BUZ = ON;
    while(LO_IN == 0);
    Delay_1600ms
    }
    else
    {
    LED = OFF;
    BUZ = OFF;
    INTCON.GIE = 1;
    }
    }

  16. #15
    invitee5da1686

    Re : ce program est "faux" ?

    c'est n'importe quoi ce montage / programme T1 il sert a quoi ??? inverser le signal alors qu'on a un UC ....

    puis le programme utiliser les interruption ? alors qu'il y a rien a faire dans le prog principale et qu'un temps de réaction de la demi seconde suffi largement pour l'application...

  17. #16
    invite29971eb1

    Re : ce program est "faux" ?

    Citation Envoyé par RISC Voir le message
    Salut,

    Je vois en tout cas une grosse erreur mais qui dans ce cas précis ne devrait pas porter à conséquence.

    La routine d'interruption devrait être écrite comme suit :

    Code:
    void interrupt()
    {
    // INTCON.GIE = 0;  // erreur, ligne non nécessaire !!!
    if (INTCON.T0IF)
    {
         j++;
         if(j == 80)
         {
             LED = ON;
             Delay_Ms(80);
             LED = OFF;
             j  = 0;
         }
    }
    INTCON.T0IF = 0;
    //INTCON.GIE = 1;   // erreur, ligne non nécessaire et très dangereuse !!!
    }
    a+
    Mais quelle idée de mettre une tempo dans une routine d'interruption..... c'est le premier truc qu'on apprend à ne pas faire quand on écrit un code propre.

  18. #17
    barth69

    Re : ce program est "faux" ?

    pas de solution alors !!
    tanpis ,merci a tous.

  19. #18
    barth69

    Re : ce program est "faux" ?

    autrement, sur le deuxième lien , celui ci

    http://embedded-lab.com/blog/?p=1334

    quand je compile son programme (pour obtenir un fichier .hex)
    j'ais cette erreur , pourquoi ?Nom : Capture.JPG
Affichages : 68
Taille : 70,1 Ko

  20. #19
    adrien4607

    Re : ce program est "faux" ?

    Citation Envoyé par barth69 Voir le message
    tu l'écrit comment ? (synthaxe)
    comme ça ? (exemple 1600ms)
    (nb: pas d'extinction de led ni de buzer avec le programme d'origine,malgré
    la ligne
    else { LED = OFF; BUZ = OFF;
    C'est pas pour te décourager mais si tu ne cherche pas a comprendre et/ou à analyser un programme tu n'avanceras pas beaucoup ... surtout si tu veux apprendre a programmer ^^

    Ton premier post, premier lien, la ligne 53 du code sert a quoi a ton avis ...?

    Citation Envoyé par barth69 Voir le message
    pas de solution alors !!
    tanpis ,merci a tous.
    Désoler mais on a tous une vie "réelle" ...


    Pour ton erreur de compilation, il manque peut-être un "#include", je connais pas les µc microchip donc je te laisse chercher ... (google risque d'être ton meilleur amis pour ça ! )
    Dernière modification par adrien4607 ; 09/01/2014 à 16h58.

  21. #20
    barth69

    Re : ce program est "faux" ?

    il semble que Le 12F675 a un comparateur CMCON.

    12F683 en a deux CMCON0 et CMCON1. d'ou mon soucis, je vais creusé ça..merci

Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...