16f887 a 16f636
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

16f887 a 16f636



  1. #1
    inviteb12aee8d

    16f887 a 16f636


    ------

    bonjour

    une ptit probleme s'offre a moi aujourd'hui:

    en transférant mon programme d'un 16f887 de test a son pic de destination, un 16f636, plus rien ne va.
    en grattant je me suis rendu compte que le 16f636 ne lisai que des 0 sur un pin qui dialogue avec un ds18b20 alors que tout fonctionnai avec le 887, en verifiant le pic est incapable de lire sur un pin utilisé a la fois en entree et en sortie!et ceci même en mettant un temps de pause entre le changement de tris.changement de pic : idem.
    il peut tres bien lire l'etat quand dans le meme programme le pin n'est utilisé que en entree.

    quelqu'un aurait'il une explication a ce phenomene?

    -----

  2. #2
    inviteb12aee8d

    Re : 16f887 a 16f636

    je précise qu'il ne s'agit pas de RA3 qui ne fonctionne que dans un sens

  3. #3
    inviteb12aee8d

    Re : 16f887 a 16f636

    je reviens car j'ai remarqué a l'oscillo un "rebond" au moment ou le pin repasse a 0 même quand le ds18b20 n'est pas présent!
    je m'explique: pin a vide je fait basculer en sortie a la masse 1milliseconde puis a 0, cela apparais bien a l'oscillo mais suivi quelques microsecondes après d'un creux de la moitie de l'amplitude de mon basculement durant quelques microsecondes, cela ne se produisait pas avec le 16f887, j'ai d'abord penser a la pull-up intégrée au 636 mais meme sur un port sans pull-up, idem.
    en soit se serai pas gênant si le pic ne prenais pas ca 1 fois sur 2 pour un état bas

    au secours!

  4. #4
    inviteb12aee8d

    Re : 16f887 a 16f636

    up

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

    Re : 16f887 a 16f636

    Salut,

    De quelle broche s'agit-il (celle qui pose problème) ?
    Comment as-tu initialisé cette broche (TRIS et autres fonctions éventuelles qui peuvent être prioritaires sur le mode E/S....) ?

    a+

  7. #6
    inviteb12aee8d

    Re : 16f887 a 16f636

    salut

    toutes les entrees/sorties se comportent de cette facon.

    pas d'interruptions.

    pour leur initialisation je ne sait pas trop, il n'y a pas longtemp que je "joue" avec les pics donc je fait confiance a flowcode et mplab pour l'instant...

    voici un exemple d'entete de code qui cause le probleme:
    include "P16F636.inc"
    ; Heap block 0, size:66 (0x0000003D - 0x0000007E)
    __HEAP_BLOCK0_BANK EQU 0x00000000
    __HEAP_BLOCK0_START_OFFSET EQU 0x0000003D
    __HEAP_BLOCK0_END_OFFSET EQU 0x0000007E
    ; Heap block 1, size:32 (0x000000A0 - 0x000000BF)
    __HEAP_BLOCK1_BANK EQU 0x00000001
    __HEAP_BLOCK1_START_OFFSET EQU 0x00000020
    __HEAP_BLOCK1_END_OFFSET EQU 0x0000003F
    ; Heap block 2, size:0 (0x00000000 - 0x00000000)
    __HEAP_BLOCK2_BANK EQU 0x00000000
    __HEAP_BLOCK2_START_OFFSET EQU 0x00000000
    __HEAP_BLOCK2_END_OFFSET EQU 0x00000000
    ; Heap block 3, size:0 (0x00000000 - 0x00000000)
    __HEAP_BLOCK3_BANK EQU 0x00000000
    __HEAP_BLOCK3_START_OFFSET EQU 0x00000000
    __HEAP_BLOCK3_END_OFFSET EQU 0x00000000
    __div_16_1_00003_arg_a EQU 0x0000002E ; bytes:2
    __div_16_1_00003_arg_b EQU 0x00000030 ; bytes:2
    CompTempVarRet132 EQU 0x0000003B ; bytes:2
    __div_16_1_00003_1_r EQU 0x00000038 ; bytes:2
    __div_16_1_00003_1_i EQU 0x0000003A ; bytes:1
    gbl_status EQU 0x00000003 ; bytes:1
    __mul_16s__0000D_arg_a EQU 0x0000002A ; bytes:2
    __mul_16s__0000D_arg_b EQU 0x0000002C ; bytes:2
    CompTempVarRet363 EQU 0x0000003A ; bytes:2
    __mul_16s__0000D_1_i EQU 0x00000037 ; bytes:1
    __mul_16s__0000D_1_t EQU 0x00000038 ; bytes:2
    gbl_indf EQU 0x00000000 ; bytes:1
    gbl_tmr0 EQU 0x00000001 ; bytes:1
    gbl_pcl EQU 0x00000002 ; bytes:1
    gbl_fsr EQU 0x00000004 ; bytes:1
    gbl_porta EQU 0x00000005 ; bytes:1
    gbl_portc EQU 0x00000007 ; bytes:1
    gbl_pclath EQU 0x0000000A ; bytes:1
    gbl_intcon EQU 0x0000000B ; bytes:1
    gbl_pir1 EQU 0x0000000C ; bytes:1
    gbl_tmr1l EQU 0x0000000E ; bytes:1
    gbl_tmr1h EQU 0x0000000F ; bytes:1
    gbl_t1con EQU 0x00000010 ; bytes:1
    gbl_wdtcon EQU 0x00000018 ; bytes:1
    gbl_cmcon0 EQU 0x00000019 ; bytes:1
    gbl_cmcon1 EQU 0x0000001A ; bytes:1
    gbl_option_reg EQU 0x00000081 ; bytes:1
    gbl_trisa EQU 0x00000085 ; bytes:1
    gbl_trisc EQU 0x00000087 ; bytes:1
    gbl_pie1 EQU 0x0000008C ; bytes:1
    gbl_pcon EQU 0x0000008E ; bytes:1
    gbl_osccon EQU 0x0000008F ; bytes:1
    gbl_osctune EQU 0x00000090 ; bytes:1
    gbl_lvdcon EQU 0x00000094 ; bytes:1
    gbl_wpuda EQU 0x00000095 ; bytes:1
    gbl_ioca EQU 0x00000096 ; bytes:1
    gbl_wda EQU 0x00000097 ; bytes:1
    gbl_vrcon EQU 0x00000099 ; bytes:1
    gbl_eedata EQU 0x0000009A ; bytes:1
    gbl_eeadr EQU 0x0000009B ; bytes:1
    gbl_eecon1 EQU 0x0000009C ; bytes:1
    gbl_eecon2 EQU 0x0000009D ; bytes:1
    gbl_crcon EQU 0x00000110 ; bytes:1
    gbl_crdat0 EQU 0x00000111 ; bytes:1
    gbl_crdat1 EQU 0x00000112 ; bytes:1
    gbl_crdat2 EQU 0x00000113 ; bytes:1
    gbl_crdat3 EQU 0x00000114 ; bytes:1
    gbl_FCV_TEMP EQU 0x00000023 ; bytes:2
    gbl_FCV_PRESENCE EQU 0x00000025 ; bytes:2
    gbl_FCV_BIT EQU 0x00000029 ; bytes:1
    gbl_FCV_MILI EQU 0x00000027 ; bytes:2
    CompTempVar625 EQU 0x0000002A ; bytes:1
    CompTempVar627 EQU 0x0000002A ; bytes:1
    CompTempVar629 EQU 0x0000002A ; bytes:1
    CompTempVar631 EQU 0x0000002A ; bytes:1
    CompTempVar633 EQU 0x0000002A ; bytes:1
    CompTempVar635 EQU 0x0000002A ; bytes:1
    CompTempVar637 EQU 0x0000002A ; bytes:1
    CompTempVar639 EQU 0x0000002A ; bytes:1
    CompTempVar641 EQU 0x0000002A ; bytes:1
    CompTempVar645 EQU 0x00000032 ; bytes:1
    CompTempVar647 EQU 0x00000033 ; bytes:1
    CompTempVar648 EQU 0x00000034 ; bytes:1
    CompTempVar649 EQU 0x00000035 ; bytes:1
    CompTempVar650 EQU 0x00000036 ; bytes:1
    CompTempVar651 EQU 0x00000037 ; bytes:1
    CompTempVar623 EQU 0x0000002A ; bytes:1
    CompTempVar624 EQU 0x0000002A ; bytes:1
    CompTempVar652 EQU 0x0000002A ; bytes:1
    CompTempVar654 EQU 0x0000002A ; bytes:1
    CompTempVar655 EQU 0x0000002A ; bytes:1
    CompTempVar656 EQU 0x0000002A ; bytes:1
    CompTempVar659 EQU 0x0000002A ; bytes:1
    CompTempVar700 EQU 0x0000002A ; bytes:1
    CompTempVar701 EQU 0x0000002A ; bytes:1
    CompTempVar704 EQU 0x0000002A ; bytes:1
    delay_ms_00000_arg_del EQU 0x0000002B ; bytes:1
    delay_s_00000_arg_del EQU 0x0000002A ; bytes:1
    Int1Context EQU 0x0000007F ; bytes:1
    Int1BContext EQU 0x00000020 ; bytes:3
    je ne sait pas du tout ce que cela contient a l'heure actuelle, si cela peut guider une bonne âme charitable vers ma solution...

  8. #7
    gedonet

    Re : 16f887 a 16f636

    Bonjour
    RA3, sur un 16F636, est aussi la pin MCLR, il faut donc choisir le bon mode dans la config, quelque chose du genre "_MCLRE_OFF".
    Gilles

  9. #8
    inviteb12aee8d

    Re : 16f887 a 16f636

    bonjour et merci

    RA3 je l'avait deja ecarté, comme je le precise plus haut.

    toutes les pistes sont les bienvenus

Discussions similaires

  1. 16F877 vs 16F887 et ICSP
    Par invite735f61e0 dans le forum Électronique
    Réponses: 4
    Dernier message: 21/04/2009, 20h34
  2. Pic 16f887 timer0
    Par invite6e6334c6 dans le forum Électronique
    Réponses: 30
    Dernier message: 11/03/2009, 07h43
  3. Programmer un 16f887 en jdm ?
    Par invite60243f9b dans le forum Électronique
    Réponses: 3
    Dernier message: 18/04/2008, 19h04
  4. Mplab / 16f887 Tqfp
    Par Toufinet dans le forum Électronique
    Réponses: 5
    Dernier message: 10/02/2007, 12h54
  5. 16F887 avec MPLab 7.5 => CONFIG
    Par Toufinet dans le forum Électronique
    Réponses: 1
    Dernier message: 21/01/2007, 11h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.