Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0



  1. #1
    invite4e4527c6

    Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0


    ------

    Bonjour,

    Je vous propose un autre problème que je n'arrive pas à résoudre, sans pour autant me donner la solution si quelqu'un pouvez me donner une piste.

    Je ne cherche pas à le faire pour le faire et recopier un programme que je ne comprends pas je cherche à le faire par mes propres moyens et bien tout comprendre pour pouvoir être efficace le jour voulu. Malheureusement ça me gave assez vite.

    Merci d'avance.

    -----
    Fichiers attachés Fichiers attachés

  2. #2
    RISC

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Salut Leonidas,

    Il existe un kit basé sur le PIC18F45K20 (Pickit3 Debug Express) pour lequel il y a pleins de tutoriels téléchargeables;=)

    C'est une bonne entrée en matière ;=)

    a+

  3. #3
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonjour RISC,

    Merci pour ta réponse, c'est avec lui que je bosse mais chaque tuto fais intervenir différents headers dont j'ai essayer de comprendre le fonctionnement mais c'est complique. J'ai eu une initiation au pic via pickit2 c'est pour ça que j'ai le pickit 3 c'est pour me perfectionner , utilisé des cartes filles via l'uart l'i²C des afficheur LCD faire tourner des moteurs etc .... Lors d'un entretien d'embauche on m'a demander si j'étais capable d'utiliser les Pics avec une liaison RS485 pour gérer des afficheurs LCD couleur obligé de dire que non j'en suis bien loin.

    C'est assez compliqué faut que je m'accroche. Il y a tellement de fonction et lire un pdf sur un écran c'est bof pour moi.

    Ce petit exercice que je fait c'est pour au final utilisé le potard de la carte qui entre une valeur dans le timer 0 via l'ADC (que j'ai déjà réussi à configurer non sans mal) pour faire varier la fréquence de défilement et je me sers de l'interrupteur en RB0 (INT0) pour faire varier le sens de défilement. En plus je débute également en C donc j'apprends les deux en même temps. Quand je viens vers vous c'est que j'ai besoin d'un peu de soutien lol excusé moi.

    Il y a même des exos tout fais avec le pickit3 mais aucun ne marche sur MPLABX, alors. Peut être avec l'IPE fourni avec je dois avoir un fichier .hex.

    Merci.

  4. #4
    RISC

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Salut,

    La plupart des projets, des exemples ou des notes d'application sur le site de Microchip sont fait pour MPLAB v8.xx car MPLAB X date d'environ 1 an.
    Il suffit "d'importer" les projets MPLABv8.xx dans MPLAB X. Il existe un module intégré d'importation pour convertir un projet MPLAB en MPLAB X.
    Une solution pour améliorer tes connaissances dans les PICs si tu en as besoin professionnellement ou pour trouver un job, c'est d'aller te former directement chez Microchip comme je l'ai fait de temps à autre.

    Il faut absolument savoir déboguer avec un outil (que ce soit un pickit3 ou autre) car c'est la méthode utilisée en entreprise pour développer des produits. L'IPE est juste un utiitaire de programmation destiné à la programmation en production.

    Le Pickit3 fonctionne parfaitement sous MPLAB X. J'utilise souvent l'ICD3 ou le real-Ice qui sont plus performants mais pour "juste" programmer un PIC, le Pickit3 reste un outil pratique et rapide ;=)

    a+
    Dernière modification par RISC ; 06/11/2012 à 11h57.

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

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonsoir,


    J'ai essayé de switcher mais ce ne sont pas les programmes qui sont passés de MPLAB 8 à X mais le hardware donc aucun des programmes mis en exemples ne fonctionnent et j'ai désinstallé le 8. Il va falloir le réinstaller.

    Peux tu RISC me parler des stages microchip, de l'ambiance, du rythme de travail etc .. j'imagine qu'il doit y avoir des clés de données.

    bonne soirée.

  7. #6
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Re bonsoir,

    OK j'ai trouvé la vidéo explicative dans MPLABX wiki. Pour transformer les programmes de MPLAB 8 en MPLABX

  8. #7
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    bonsoir,


    Qui pourrait me dire où trouver le linker p18f45k20i car apparemment MPLABX en a besoin mais je n'ai trouvé que le linker p18f45k20_g qui ne marche pas avec MPLABX et le pickit3.
    J'ai cherché sur google qui de temps en temps peut être mon ami mais je n'ai rien trouvé. Sinon fermer et ré-ouvrir MPLABX ce qui ne marche pas.

    Merci.

  9. #8
    RISC

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Salut,

    Le linker file p18f45k20_g FONCTIONNE parfaitement avec toutes les versions récentes de MPLAB, de MPLAB X, des compilateurs C18 et XC8.
    D'ailleurs le plus simple c'est....de s'en passer complètement.
    Pour t'éviter de faire des tas de suppositions :
    a/ installe MPLAB v8.88
    b/ installe MPLAB X v1.50
    c/ installe le compilateur C18 Lite v3.41
    d/ installe le compilateur XC8 Lite v1.11

    Et ne change pas...sauf pour des versions PLUS récentes.
    Si tu as des PB avec MPLAB X parce que tu ne sais pas correctement importer des projets, travailles (mais c'est dommage) avec MPLAB v8
    De même je te conseille de plutôt utiliser le compilateur C18 car XC8 n'a pas encore 100% de compatibilité sur les projets C18 importés.

    Suis les tutoriels avec des programmes tous faits. quand tu arrives à compiler, programmer et déboguer, commence à modifier pas à pas.
    Mon programme fétiche c'est...de faire clignoter une LED (que ce soit avec un microcontroleur 8/16/32 bits). Cela n'a l'air de rien mais c'est une méthode qui paye !!! car elle valide tout un tas de choses sur la carte et l'environnement logiciel.

    a+
    Dernière modification par RISC ; 07/11/2012 à 22h24.

  10. #9
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonjour,

    OK je fais comme tu me dis et je te remercie pour tes conseils. Mais je n'ai pas trouvé le compilateur C18 lite 3.41 que la version 3.40 ok sinon j'utilisais sois XC8 ou hi-tech C comme compilateur, je vais utilisé C18 maintenant. Les petits programme comme allumer une led marche bien mais si je passe à l'utilisation du timer les instructions ont beau être celles qu'il faut elles sont soulignées en rouge.
    Mais bon je vais me dépatouiller de tout ça.

  11. #10
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonjour,

    Ok apparemment j'ai trouvé mplab c18 version 3.43 je l'ai téléchargé et installé.

    J'espère qu'il n'y aura pas de conflit.
    J'ai aussi trouvé mplab 8.88 que j'ai aussi installé.

    bonne journée

  12. #11
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonsoir je pense avoir un problème avec l'interrupteur branché sur RB0 en effet j'ai fait un petit programme pour l'utiliser et j'ai eu beau le modifier x fois ça ne marche toujours pas.

    Au multimètre je n'ai aucune tension entre les bornes de l'inter au repos ( je devrais avoir 3V an mini l'inter etant entre la masse et le plus via une résistance) si j'appuie dessus j'ai 0,8V je pensais avoir au moins 2V mais bon. La résistance près qui limite le courant entrant par la broche RB0 ne prend rien en tesion . La résistance avant n'a que 3.15V mais normal le 18F45K20 marche en 3.3V.
    Possible que ce soit mon programme que je mets en pièce jointe.

    Pour un tel programme, la balise code permet de l'inclure dans le corps du message.

    Code:
    #include <p18f45k20.h>
    
    #pragma config FOSC= INTIO67
    #pragma config WDTEN = OFF
    
    int i;
    
    void main ()
    {
        TRISB = 0x01;
        TRISD = 0x00;
        PORTD = 0X00;
    
        while (1)
        {
             if(PORTBbits.RB0 == 0)
             {
                 PORTD = 1;
             }
             else
             {
                 PORTD = 0;
             }
        }
    }
    Dernière modification par gienas ; 08/11/2012 à 22h43. Motif: Placé le code dans le corps du message et supprimé PJ en txt

  13. #12
    JPL
    Responsable des forums

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Pour poster du code dans le message il y a la balise Code (#) de l'éditeur avancé.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  14. #13
    gienas
    Modérateur

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonsoir à tous

    Citation Envoyé par JPL Voir le message
    Pour poster du code dans le message il y a la balise Code (#) de l'éditeur avancé.
    Je confirme. C'est fait.

  15. #14
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    ah OK

    Merci.

  16. #15
    JPL
    Responsable des forums

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Citation Envoyé par gienas Voir le message
    Je confirme. C'est fait.
    Ah, j'étais arrivé sur le premier message à partir du logiciel des pièces jointes et j'ai répondu sans lire le reste.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  17. #16
    gienas
    Modérateur

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Citation Envoyé par JPL Voir le message
    Ah, j'étais arrivé sur le premier message à partir du logiciel des pièces jointes et j'ai répondu sans lire le reste ...
    Moi aussi.

    Quand tu as répondu, j'étais en train de modifier, mais ce n'était pas encore publié.

  18. #17
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Merci pour ce conseil,

    est ce qu'on peut le mettre directement dans le langage dans lequel il est écrit sans être obligé de le mettre en .txt ou .doc.

    je fais un essai on fait comment on télécharge la pièce jointe et on la met dedans ou on écrit tout le code entre les balises dans ce cas double merci à gienas
    Code:
    #include <p18f45k20.h>
    
    #pragma config FOSC= INTIO67
    #pragma config WDTEN = OFF
    
    int i;
    
    void main ()
    {
        TRISB = 0x01;
        TRISD = 0x00;
        PORTD = 0X00;
    
        while (1)
        {
             if(PORTBbits.RB0 == 0)
             {
                 PORTD = 1;
             }
             else
             {
                 PORTD = 0;
             }
        }
    }

    copier coller

    merci encore.

  19. #18
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    CETTE FOIS CI ESSAIS DANS LE LANGAGE VOULU
    Code:
    #include <p18f45k20.h>
    
    #pragma config FOSC= INTIO67
    #pragma config WDTEN = OFF
    
    
    
    void main ()
    {
        TRISB = 0x01;
        TRISD = 0x00;
        PORTD = 0X00;
    
        while (1)
        {
             if(PORTBbits.INT0 == 0)
             {
                 LATD = 0xFF;
             }
             else
             {
                 LATD = 0x00;
             }
        }
    }
    OK APPAREMMENT CA MARCHE

  20. #19
    RISC

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Salut,

    Peux-tu faire voir le schéma (à jour et correct) de ta carte ?
    C'est peut-être de la que viennent les problèmes...

    Tu n'as pas le droit d'utiliser "PORTBbits.INT0" car cela n'a pas de sens...même si le compilateur ne génère pas d'erreur.
    Ta version précédente était correcte : "PORTBbits.RB0"


    a+

  21. #20
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Bonsoir,

    RISC Merci de t' interresser encore à mon cas,

    Ma carte est la carte cible vendue avec le pickit3 44 broches PIC18f45k20 pour moi tu peux la trouver sur le net mais je la mets en pièce jointe tu la trouve en appendix A au multi (FLUKE 113) je trouve la même chose (ça correspond à la connectique pour l'inter) quand il est au repos RB0 voit 1 et quand on appuie dessus RB0 voit 0 mon problème c'est la tension trop faible qui va à la masse donc pas assez de courant.

    Sinon j'ai remis RBO dans le programme.

    mERCI ENCORE;
    Images attachées Images attachées

  22. #21
    RISC

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Salut,

    Ma recommendation : suit les tutoriels faits pour ta carte... : http://ww1.microchip.com/downloads/e...Doc/41370C.pdf
    C'est fait pour apprendre pas à pas ;=)

    Ton programme ne marche pas par ce qu'il manque plusieurs initialisations que tu aurais vues si tu avais lu la leçon 4 du document ci-dessus...

    a+

  23. #22
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    En fait avec l'inter au repos je n'ai que 0,9 V sur RB0 et j'ai toute les leds d'allumées quand je lance le programme donc au lieu de voir un 1 logique RB0 voit un 0 logique

    je vous met le programme qui me donne ça

    Code:
    #include <p18f45k20.h>
    
    #pragma config FOSC= INTIO67
    #pragma config WDTEN = OFF
    
    
    
    void main ()
    {
        TRISB = 0x01;
        TRISD = 0x00;
        PORTD = 0X00;
    
        while (1)
        {
             if(PORTBbits.RB0 == 0)
             {
                 LATD = 0xFF;
             }
             else
             {
                 LATD = 0x00;
             }
        }
    }

  24. #23
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    aH Ok MERCI BEAUCOUP JE VAIS LA VOIR DE CE PAS.

  25. #24
    invite4e4527c6

    Re : Pic18f45k20 faire defiler les leds dans les deux sens avec TMR0

    Oui, en effet le ANSELH mal.

    Laisser le PORTB en analogique ne convient pas il faut le passer en digital. Je ne pense pas que mettre des pull up aurait changer grand chose.

    voici le programme qui donne ce que je veux.


    Code:
    #include <p18f45k20.h>
    
    
    #pragma config FOSC= INTIO67
    #pragma config WDTEN = OFF
    
    
    void main ()
    {
        ANSELH = 0x00;
        INTCON2bits.RBPU = 0;
        WPUBbits.WPUB0 = 1;
        TRISB = 0x01;
        TRISD = 0x00;
        PORTD = 0X00;
    
        while (1)
        {
             if(PORTBbits.RB0 == 1)
                 {
                    LATD = 0xFF;
                 }
             else
                {
                     LATD = 0x00;
                }
        }
    }
    MERCI à tous ceux qui ont participé, spécial dédicace à RISC.

    Bonne soirée à tous.

Discussions similaires

  1. Module peltier utilisation dans les deux sens?
    Par invite5a932b88 dans le forum Électronique
    Réponses: 4
    Dernier message: 07/06/2012, 18h43
  2. flexion dans les deux sens
    Par invite3be9e80a dans le forum Physique
    Réponses: 1
    Dernier message: 05/04/2012, 15h35
  3. Faire tourner un moteur dans les 2 sens
    Par invite7d728e29 dans le forum Électronique
    Réponses: 14
    Dernier message: 01/03/2010, 14h30
  4. Réaction s'effectuant dans les deux sens
    Par invite22b7d2a8 dans le forum Chimie
    Réponses: 3
    Dernier message: 03/11/2008, 11h00
  5. aide pour commander 2 moteurs dans les deux sens
    Par invitec9170ad2 dans le forum Électronique
    Réponses: 0
    Dernier message: 10/07/2006, 11h41
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...