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

question mikrobasic



  1. #1
    LTHOMAS

    question mikrobasic


    ------

    bonjour, je débute totalement sur mikrobasic avec un PIC16F628. J'aimerai que mon 16F628 fonctionne "tout seul" je ne veux pas de composants externes donc il faut activer l'oscillateur interne je pense, ya-t-il d'autres choses à faire ? Quel est le code pour activer l'oscillateur ? Lorsque je metterai le pic sous tension, cet oscillateur fonctionnera tout seul ??

    -----

  2. Publicité
  3. #2
    LTHOMAS

    Re : question mikrobasic

    voici mon programme :

    Code:
    program vinc
    
    main:
       TRISB = 0 'PORT B en sortie
       TRISA = %1 'Port A.1 en entrée
       PORTB = 0
       
       If PORTA = %1 then
       PORTB = 1
       end if
       delay_ms(500)
       PORTB = 0
       delay_ms(3000)
       goto main
       
    end.
    Lorsque je le mets sur MPASMWIN il me trouve des erreurs...
    Le but : lorsqu'il y a une impulsion sur A.1, B.1 passe à 1 pendant 500ms, puis rien ne doit se passer pendant 3s quelque soit l'état de A.1, après ces 3s le cycle peut recommancer... Je pense que mon programme ressemble à ce que je viens de raconter !? Mais il ya sans doute des erreurs...

    Dernière modification par monnoliv ; 24/08/2006 à 21h51.

  4. #3
    Gérard

    Re : question mikrobasic

    Certaines broches du 628 (RA0 à RA3) sont des entrées de comparateurs analogiques à la mise sous tension.
    Tu dois donc inclure la ligne
    CMCON = 7 pour avoir des entrées numériques.

    Tu écris :TRISA = %1 'Port A.1 en entrée
    Ce n'est pas juste, si TRISA = 1, tu configures PORTA.0 et non PORTA.1
    Gérard.

  5. #4
    Invité

    Re : question mikrobasic

    Hello,

    le programme mikroBasic est syntaxiquement correct par contre il ne fait pas ce que tu attends :

    Code:
    TRISA = %1 'Port A.1 en entrée
    cette ligne met le port RA0 en entrée et non pas RA1, pour mettre le RA1 en entrée il faut faire :
    Code:
    TRISA = %10 'Port A.1 en entrée
    ou mieux
    Code:
    TRISA.1 = 1 'Port A.1 en entrée

    Code:
    If PORTA = %1 then
    cette ligne teste l'intégralité du port A !
    pour ne tester que RA1 il faut faire :
    Code:
    If (PORTA and %10) = %10 then
    ou mieux
    Code:
    If PORTA.1 = 1 then
    pour faire fonctionner le pic sans oscillateur externe il faut sélectionner l'oscillateur interne RC dans les bits de configuration :
    Project -> Edit Project -> Device Flags -> cocher un des deux modes INT RC OSC (avec ou sans clockout selon ce dont tu as besoin)

    l'oscillateur interne démarre à la mise sous tension du pic, un bit d'un registre spécial du pic permet de savoir si il est stabilisé (voir la doc du pic)

    A+,

    Bruno

  6. #5
    Gérard

    Re : question mikrobasic

    Salut Bruno,
    J'ai été plus rapide que toi mais toi tu as été plus précis.
    Match nul, 1-1
    Gérard.

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

    Re : question mikrobasic

    merci pour votre aide !

    Je récapitule :

    program vinc

    main:
    CMCON = 7
    TRISB.0 = 0 'PORT B.0 en sortie
    TRISA.1 = 1 'Port A.1 en entrée
    PORTB.0 = 0

    If PORTA.1 = 1 then
    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto main

    end.
    Par contre j'aimerai savoir pourquoi il faut marquer CMCON = 7, pourquoi = 7? Ya-t-il d'autres trucs à savoir dans ce style, les pièges pour débutants ??

    merci
    @+

  9. Publicité
  10. #7
    umfred

    Re : question mikrobasic

    Il faut mettre la valeur 7 dans CMCON pour dévalider le fonctionnement du port A en fonctionnement en comparateur et donc configurer ce port en entrées/sorties numériques.
    Pour connaitre le détail exact, le mieux est de regarder directement dans la datasheet du PIC (ici)

  11. #8
    Invité

    Re : question mikrobasic

    Hello,

    @Gérard :
    bien vu pour la config des comparateurs CMCON !

    @LThomas :
    j'ajouterai aussi ADCON = 7 pour la config des convertisseurs A/D

    A+,

    Bruno

  12. #9
    LTHOMAS

    Re : question mikrobasic

    ok merci pour votre aide !!

    @+

  13. #10
    Gérard

    Re : question mikrobasic

    Citation Envoyé par brunog Voir le message
    Hello,

    @Gérard :
    bien vu pour la config des comparateurs CMCON !

    @LThomas :
    j'ajouterai aussi ADCON = 7 pour la config des convertisseurs A/D

    A+,

    Bruno
    Le 628 ne possède pas de registre ADCON, il n'a pas de CAN mais des comparateurs analogiques d'où le registre CMCON.
    Gérard.

  14. #11
    LTHOMAS

    Re : question mikrobasic

    donc je ne mets pas ADCON = 7

    au fait, existe-t il un debugger sur mikrobasic ?

  15. #12
    Gérard

    Re : question mikrobasic

    program vinc

    main:
    CMCON = 7
    TRISB.0 = 0 'PORT B.0 en sortie
    TRISA.1 = 1 'Port A.1 en entrée
    PORTB.0 = 0

    If PORTA.1 = 1 then
    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto main

    end.

    Tu peux faire un goto 'debut' avec 'debut' placé avant le 'if'.
    Avec goto main, tu demande au PIC de refaire l'init, c qui n'est pas utile.
    Gérard.

  16. Publicité
  17. #13
    LTHOMAS

    Re : question mikrobasic

    program vinc

    main:
    CMCON = 7
    TRISB.0 = 0 'PORT B.0 en sortie
    TRISA.1 = 1 'Port A.1 en entrée
    PORTB.0 = 0

    debut

    If PORTA.1 = 1 then
    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto debut

    end.

    merci mais je ne savais pas si je pouvait le faire !

  18. #14
    LTHOMAS

    Re : question mikrobasic

    Par contre il faut déclarer le "debut" ?? Parce qu'il n'est pas trop d'accord avec moi le logiciel !!

  19. #15
    LTHOMAS

    Re : question mikrobasic

    Ya encore un autre problème : dès que je le mets sous MPASMWIN il me trouve à chaque fois une centaine d'erreures... je ne pense pas que c'est normal !

  20. #16
    Gérard

    Re : question mikrobasic

    debut est une étiquette, voir dans la doc de ton compilateur comment sont déclarées les étiquettes.
    J'ai PROTON+ et je dois faire ainsi:

    debut:
    .....
    .....

    ce que je veux dire, c'est : après l'étiquette
    Gérard.

  21. #17
    Gérard

    Re : question mikrobasic

    debut

    If PORTA.1 = 1 then
    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto debut

    J'écrirais plutôt

    debut:
    If PORTA.1 = 0 then debut

    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto debut

    dans ce cas, le prog boucle à debut tant que rien ne se passe sur PORTA.1
    Gérard.

  22. #18
    Invité

    Re : question mikrobasic

    Citation Envoyé par Gérard Voir le message
    Le 628 ne possède pas de registre ADCON, il n'a pas de CAN mais des comparateurs analogiques d'où le registre CMCON.
    Gérard.
    C'est vrai, le pauvre !

    @LThomas :
    oui il y a un débuggeur software dans le mikroBasic, ainsi que le tout nouveau débuggeur hardware mikroICD qui fonctionne avec la nouvelle platine de développement EP4 qui va sortir sous peu

    A+,

    Bruno

  23. Publicité
  24. #19
    LTHOMAS

    Re : question mikrobasic

    debut:
    If PORTA.1 = 0 then debut

    PORTB.0 = 1
    end if
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto debut
    Ahh voilà une super idée !!!

    mais le end if je le metterai 1 ligne avant :

    debut:
    If PORTA.1 = 0 then debut
    endif

    PORTB.0 = 1
    delay_ms(500)
    PORTB.0 = 0
    delay_ms(3000)
    goto debut

  25. #20
    LTHOMAS

    Re : question mikrobasic

    Mais moi ce qui me dépasse maintenant, c'est que tous les programmes que je fais et que je veux convertir en .hex, MPASMWIN me trouve toujours 110 erreurs !!!! Je ne sais plus quoi faire de plus, alors est-ce que qqun a une solution ???

    merci beaucoup !

  26. #21
    Invité

    Re : question mikrobasic

    Citation Envoyé par LTHOMAS Voir le message
    Mais moi ce qui me dépasse maintenant, c'est que tous les programmes que je fais et que je veux convertir en .hex, MPASMWIN me trouve toujours 110 erreurs !!!! Je ne sais plus quoi faire de plus, alors est-ce que qqun a une solution ???

    merci beaucoup !
    pourquoi as tu besoin de mpasmwin ?

    mikroBasic génère dans le dossier du projet le fichier HEX prêt à être flashé dans le pic

    A+,

    Bruno

  27. #22
    Gérard

    Re : question mikrobasic

    C'est quoi tes erreurs ?
    Dire : il y en a 110 n'est pas suffisant pour t'aider.
    Gérard.

  28. #23
    LTHOMAS

    Re : question mikrobasic

    mikroBasic génère dans le dossier du projet le fichier HEX prêt à être flashé dans le pic
    ahh bon ?? JE ne savais pas, j'irai voir... Je n'ai pas eu le tps de lire la "notice" c'est un projet très urgent !!!

    merci
    @+

  29. #24
    Invité

    Re : question mikrobasic

    Un compilateur, c'est fait pour !

    Les compilateurs mikroE utilisent leur propre notation assembleur mikroVirtualMachine qui est légèrement différente de la notation microchip MPASM, c'est pour cela qu'un fichier ASM mikroVirtualMachine n'est pas utilisable directement avec MPASM.

    si tu tiens absolument à utiliser MPASM avec du code mikroVirtualMachine il faut passer par un traducteur :
    http://www.micro-examples.com/public...ranslator.html
    (pour P12 & P16 uniquement pour l'instant)

    A+,

    Bruno

  30. Publicité
  31. #25
    LTHOMAS

    Re : question mikrobasic

    tu tiens absolument à utiliser MPASM
    Non pas du tout...

    PROBLEME RESOLU !
    Demain => phase programmation !!

    merci

    @+

  32. #26
    Gérard

    Re : question mikrobasic

    Bon courage pour toi demain, moi je serai en vacances.
    Gérard.

  33. #27
    LTHOMAS

    Re : question mikrobasic

    bonnes vacances

  34. #28
    LTHOMAS

    Re : question mikrobasic

    resalut tout le monde, là je commance à m'énerver parce que rien ne marche !!!!!

    J'ai programmé un pic pour faire un petit test avant de me lancer : faire clignotter une del
    Etant donné que j'ai programmé l'oscillateur en interne, lorsque je branche le pic, la del doit clignotter !!!!
    J'ai programmé, reprogrammé, vérifié et tout, tout est bon et pourtant ça ne marche pas !!!????
    au niveau du branchement : VSS : masse, VDD = +5V
    RB.1---résistance----del----masse
    C'est juste je pense !!!

    J'utilise winpic pour transférer le programme, et je suis sous winXP

    Est-ce que quelqu'un voit une erreur ????

    Help, c'est URGENT !!!!!


    merci à tous !

  35. #29
    umfred

    Re : question mikrobasic

    A tout hasard, vérifie que tu t'es pas trompé dans le sens de la LED

  36. #30
    LTHOMAS

    Re : question mikrobasic

    sens de la LED
    lol

    nan la led s'allume en permanence... mais elle ne clignotte pas !!

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Ptite question sur une question de géo3D : Asie 06
    Par anonymus dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 01/06/2007, 14h51
  2. afficheur avec PIC le tout sous mikrobasic !
    Par LTHOMAS dans le forum Électronique
    Réponses: 5
    Dernier message: 09/11/2006, 20h19
  3. Question sur une question ( algèbre lin.)
    Par xMrDibbsx dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 14/10/2006, 00h39
  4. fonction mikrobasic
    Par LTHOMAS dans le forum Électronique
    Réponses: 1
    Dernier message: 01/10/2006, 16h09
  5. Question sur VCO dans ce schéma (et autre question)
    Par freesbeep dans le forum Électronique
    Réponses: 0
    Dernier message: 08/12/2005, 23h01
Découvrez nos comparatifs produits sur l'informatique et les technologies.