probleme entre code et schema avec pic
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 34

probleme entre code et schema avec pic



  1. #1
    kevin8z

    probleme entre code et schema avec pic


    ------

    bonjour j'ai un petit probleme j'ai creer un programme sous flowcode pour allumer 30 led tout les une seconde soi les une aprés les autre autre soi 1+1+1... pour changer le mode d'allumage j'utilise un boutton sur RE0 le tout programmer pour utiliser un quartz de 20 mhz, le probleme c'est que j'ai essayer de faire le teste en vrai donc j'ai mis juste 2 led pour le teste une sur RA0 et l'autre sur RA1 j'ai mis un quartz de 25mhz au lieu de 20 juste pour le teste car j'en est pas d'autre a ce quartz il y a 2 condensateur de 22pf, mais le probleme c'est que mes led ne s'allume pas donc j'aurai aimer avoir votre aide, a oui aussi juste pour le teste je n'est pas mis de boutton.
    merci de votre aide

    j'utilise un pic 16f887
    et la sortie sur ce pic c'est bien du + pas de la masse?

    -----

  2. #2
    umfred

    Re : probleme entre code et schema avec pic

    tu as bien pensé à désactiver les sorties analogiques ? (registre ANSEL à 0)

  3. #3
    kevin8z

    Re : probleme entre code et schema avec pic

    heu moi je programme avec flocode donc en organigramme on le regle ou ca? mon schema j'arrive bien a le simuler avec flowcode.

  4. #4
    umfred

    Re : probleme entre code et schema avec pic

    derriere l'organigramme, il y a toujours du code et tu doit en rentrer sans le savoir , il faut rajouter une case de code au début avec l'initialisation
    Code:
    BANKSEL PORTA ;
    CLRF PORTA ;Init PORTA
    BANKSEL ANSEL ;
    CLRF ANSEL ;digital I/O
    tu peux vérifier si il le fait lors de la compilation en faisant une "compilation vers asm"

    j'y pense tu as mis une résistance en série avec la led ? (histoire de régler le courant)

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

    Re : probleme entre code et schema avec pic

    apparament ya pas, mais par contre vue que je ne sais pas programmer en asm si je te passe le programme tu pourrer me rajouter c'est ligne stp? pour pouvoir me le recompiler en hex parceque j'arrive pas a le faire?
    merci
    je n'est pas mis de resistance car elle s'allume juste une seconde c'ets juste pour un teste

  7. #6
    umfred

    Re : probleme entre code et schema avec pic

    tu peux toujours mettre le code ici (en n'oubliant pas de mettre les balises (bouton # lors de la rédaction du post)

  8. #7
    invite7ebe6b01

    Re : probleme entre code et schema avec pic

    Citation Envoyé par kevin8z Voir le message
    je n'est pas mis de resistance car elle s'allume juste une seconde c'ets juste pour un teste
    deja si tu as pas de resistances sortie pic avec ta led....je pense que tu dois pas aller plus loin....commence par etre sur de ton electronique que tu n ai plus a la remettre en question...et apres penche toi sur ton soft....

    essaye de nous mettre une copie de ton soft ainsi que ton schema "de test" que tu as realiser.... on t en diras beaucoup plus

  9. #8
    kevin8z

    Re : probleme entre code et schema avec pic

    ok merci de vos reponce, je metterer le code ce soir car la je n'est pas le temps et je vous fairer un schema, le code vous le vouler en c ou en asm?
    a oui et hier en essayan de simuler sous isis je me suis rendu compte que j'avai regler PORTA en sortie alors que a RA6 et RA7 il y a le quartz qui y vien donc je croi que mon probleme vien de la car sur isis j'avai mis seulement 2 led sur RA0 et RA1 mais il ne s'allumer pas, donc ce soir je modifie le programme et je reteste et si ca ne fonctionne pas je vous posterer le schema plus le programme.

  10. #9
    kevin8z

    Re : probleme entre code et schema avec pic

    re alors je n'arrive toujour pas a allumer les led avec isis, j'ai choisis de RA0 a RA5 des sorti pour les led et RA6 et RA7 je ne c'est pas ce qu'il faut vers vue qu'il y a un quartz, donc voici le code en ASM: (j'ai le C sinon)
    Code:
    ;/////////////////////////////////////////////////////////////////////////////////
    ;// Code Generator: BoostC Compiler - http://www.sourceboost.com
    ;// Version       : 6.70
    ;// License Type  : Full License
    ;// Limitations   : PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited, Non commercial use only
    ;/////////////////////////////////////////////////////////////////////////////////
    
    	include "P16F887.inc"
    ; Heap block 0, size:111 (0x00000110 - 0x0000017E)
    __HEAP_BLOCK0_BANK               EQU	0x00000002
    __HEAP_BLOCK0_START_OFFSET       EQU	0x00000010
    __HEAP_BLOCK0_END_OFFSET         EQU	0x0000007E
    ; Heap block 1, size:96 (0x00000190 - 0x000001EF)
    __HEAP_BLOCK1_BANK               EQU	0x00000003
    __HEAP_BLOCK1_START_OFFSET       EQU	0x00000010
    __HEAP_BLOCK1_END_OFFSET         EQU	0x0000006F
    ; Heap block 2, size:80 (0x000000A0 - 0x000000EF)
    __HEAP_BLOCK2_BANK               EQU	0x00000001
    __HEAP_BLOCK2_START_OFFSET       EQU	0x00000020
    __HEAP_BLOCK2_END_OFFSET         EQU	0x0000006F
    ; Heap block 3, size:73 (0x00000027 - 0x0000006F)
    __HEAP_BLOCK3_BANK               EQU	0x00000000
    __HEAP_BLOCK3_START_OFFSET       EQU	0x00000027
    __HEAP_BLOCK3_END_OFFSET         EQU	0x0000006F
    gbl_status                       EQU	0x00000003 ; bytes:1
    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_portb                        EQU	0x00000006 ; bytes:1
    gbl_portc                        EQU	0x00000007 ; bytes:1
    gbl_portd                        EQU	0x00000008 ; bytes:1
    gbl_porte                        EQU	0x00000009 ; bytes:1
    gbl_pclath                       EQU	0x0000000A ; bytes:1
    gbl_intcon                       EQU	0x0000000B ; bytes:1
    gbl_pir1                         EQU	0x0000000C ; bytes:1
    gbl_pir2                         EQU	0x0000000D ; bytes:1
    gbl_tmr1l                        EQU	0x0000000E ; bytes:1
    gbl_tmr1h                        EQU	0x0000000F ; bytes:1
    gbl_t1con                        EQU	0x00000010 ; bytes:1
    gbl_tmr2                         EQU	0x00000011 ; bytes:1
    gbl_t2con                        EQU	0x00000012 ; bytes:1
    gbl_sspbuf                       EQU	0x00000013 ; bytes:1
    gbl_sspcon                       EQU	0x00000014 ; bytes:1
    gbl_ccpr1l                       EQU	0x00000015 ; bytes:1
    gbl_ccpr1h                       EQU	0x00000016 ; bytes:1
    gbl_ccp1con                      EQU	0x00000017 ; bytes:1
    gbl_rcsta                        EQU	0x00000018 ; bytes:1
    gbl_txreg                        EQU	0x00000019 ; bytes:1
    gbl_rcreg                        EQU	0x0000001A ; bytes:1
    gbl_ccpr2l                       EQU	0x0000001B ; bytes:1
    gbl_ccpr2h                       EQU	0x0000001C ; bytes:1
    gbl_ccp2con                      EQU	0x0000001D ; bytes:1
    gbl_adresh                       EQU	0x0000001E ; bytes:1
    gbl_adcon0                       EQU	0x0000001F ; bytes:1
    gbl_option_reg                   EQU	0x00000081 ; bytes:1
    gbl_trisa                        EQU	0x00000085 ; bytes:1
    gbl_trisb                        EQU	0x00000086 ; bytes:1
    gbl_trisc                        EQU	0x00000087 ; bytes:1
    gbl_trisd                        EQU	0x00000088 ; bytes:1
    gbl_trise                        EQU	0x00000089 ; bytes:1
    gbl_pie1                         EQU	0x0000008C ; bytes:1
    gbl_pie2                         EQU	0x0000008D ; bytes:1
    gbl_pcon                         EQU	0x0000008E ; bytes:1
    gbl_osccon                       EQU	0x0000008F ; bytes:1
    gbl_osctune                      EQU	0x00000090 ; bytes:1
    gbl_sspcon2                      EQU	0x00000091 ; bytes:1
    gbl_pr2                          EQU	0x00000092 ; bytes:1
    gbl_sspadd                       EQU	0x00000093 ; bytes:1
    gbl_sspstat                      EQU	0x00000094 ; bytes:1
    gbl_wpub                         EQU	0x00000095 ; bytes:1
    gbl_iocb                         EQU	0x00000096 ; bytes:1
    gbl_vrcon                        EQU	0x00000097 ; bytes:1
    gbl_txsta                        EQU	0x00000098 ; bytes:1
    gbl_spbrg                        EQU	0x00000099 ; bytes:1
    gbl_spbrgh                       EQU	0x0000009A ; bytes:1
    gbl_pwm1con                      EQU	0x0000009B ; bytes:1
    gbl_eccpas                       EQU	0x0000009C ; bytes:1
    gbl_pstrcon                      EQU	0x0000009D ; bytes:1
    gbl_adresl                       EQU	0x0000009E ; bytes:1
    gbl_adcon1                       EQU	0x0000009F ; bytes:1
    gbl_wdtcon                       EQU	0x00000105 ; bytes:1
    gbl_cm1con0                      EQU	0x00000107 ; bytes:1
    gbl_cm2con0                      EQU	0x00000108 ; bytes:1
    gbl_cm2con1                      EQU	0x00000109 ; bytes:1
    gbl_eedata                       EQU	0x0000010C ; bytes:1
    gbl_eeadr                        EQU	0x0000010D ; bytes:1
    gbl_eedath                       EQU	0x0000010E ; bytes:1
    gbl_eeadrh                       EQU	0x0000010F ; bytes:1
    gbl_srcon                        EQU	0x00000185 ; bytes:1
    gbl_baudctl                      EQU	0x00000187 ; bytes:1
    gbl_ansel                        EQU	0x00000188 ; bytes:1
    gbl_anselh                       EQU	0x00000189 ; bytes:1
    gbl_eecon1                       EQU	0x0000018C ; bytes:1
    gbl_eecon2                       EQU	0x0000018D ; bytes:1
    gbl_FCV_VARIABLE                 EQU	0x00000023 ; bytes:1
    gbl_FCV_CAPTEUR                  EQU	0x00000024 ; bytes:1
    CompTempVar623                   EQU	0x00000025 ; bytes:1
    CompTempVar624                   EQU	0x00000025 ; bytes:1
    CompTempVar625                   EQU	0x00000025 ; bytes:1
    CompTempVar626                   EQU	0x00000025 ; bytes:1
    CompTempVar627                   EQU	0x00000025 ; bytes:1
    CompTempVar628                   EQU	0x00000025 ; bytes:1
    CompTempVar629                   EQU	0x00000025 ; bytes:1
    CompTempVar630                   EQU	0x00000025 ; bytes:1
    delay_ms_00000_arg_del           EQU	0x00000026 ; bytes:1
    delay_s_00000_arg_del            EQU	0x00000025 ; bytes:1
    Int1Context                      EQU	0x0000007F ; bytes:1
    Int1BContext                     EQU	0x00000020 ; bytes:3
    	ORG 0x00000000
    	GOTO	_startup
    	ORG 0x00000004
    	MOVWF Int1Context
    	SWAPF STATUS, W
    	BCF STATUS, RP0
    	BCF STATUS, RP1
    	MOVWF Int1BContext
    	SWAPF PCLATH, W
    	MOVWF Int1BContext+D'1'
    	SWAPF FSR, W
    	MOVWF Int1BContext+D'2'
    	BCF PCLATH,3
    	BCF PCLATH,4
    	GOTO	interrupt
    	ORG 0x00000010
    delay_ms_00000
    ; { delay_ms ; function begin
    	MOVF delay_ms_00000_arg_del, F
    	BTFSS STATUS,Z
    	GOTO	label4026531858
    	RETURN
    label4026531858
    	MOVLW 0xF9
    label4026531859
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	ADDLW 0xFF
    	BTFSS STATUS,Z
    	GOTO	label4026531859
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	DECFSZ delay_ms_00000_arg_del, F
    	GOTO	label4026531858
    	RETURN
    ; } delay_ms function end
    
    	ORG 0x0000003C
    delay_s_00000
    ; { delay_s ; function begin
    label4026531864
    	MOVLW 0xFA
    	MOVWF delay_ms_00000_arg_del
    	CALL delay_ms_00000
    	MOVLW 0xFA
    	MOVWF delay_ms_00000_arg_del
    	CALL delay_ms_00000
    	MOVLW 0xFA
    	MOVWF delay_ms_00000_arg_del
    	CALL delay_ms_00000
    	MOVLW 0xFA
    	MOVWF delay_ms_00000_arg_del
    	CALL delay_ms_00000
    	DECFSZ delay_s_00000_arg_del, F
    	GOTO	label4026531864
    	RETURN
    ; } delay_s function end
    
    	ORG 0x0000004B
    FCM_portd_00000
    ; { FCM_portd ; function begin
    label268439705
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisd
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portd
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	MOVF gbl_FCV_VARIABLE, W
    	XORLW 0x3F
    	BTFSC STATUS,Z
    	RETURN
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar626
    	BCF STATUS,C
    	RLF CompTempVar626, W
    	MOVWF gbl_FCV_VARIABLE
    	INCF gbl_FCV_VARIABLE, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439705
    ; } FCM_portd function end
    
    	ORG 0x00000060
    FCM_portc_00000
    ; { FCM_portc ; function begin
    label268439690
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisc
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portc
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	INCF gbl_FCV_VARIABLE, W
    	BTFSC STATUS,Z
    	RETURN
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar625
    	BCF STATUS,C
    	RLF CompTempVar625, W
    	MOVWF gbl_FCV_VARIABLE
    	INCF gbl_FCV_VARIABLE, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439690
    ; } FCM_portc function end
    
    	ORG 0x00000074
    FCM_portb_00000
    ; { FCM_portb ; function begin
    label268439675
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisb
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portb
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	INCF gbl_FCV_VARIABLE, W
    	BTFSC STATUS,Z
    	RETURN
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar624
    	BCF STATUS,C
    	RLF CompTempVar624, W
    	MOVWF gbl_FCV_VARIABLE
    	INCF gbl_FCV_VARIABLE, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439675
    ; } FCM_portb function end
    
    	ORG 0x00000088
    FCM_porta_00000
    ; { FCM_porta ; function begin
    label268439660
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisa
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_porta
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	INCF gbl_FCV_VARIABLE, W
    	BTFSC STATUS,Z
    	RETURN
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar623
    	BCF STATUS,C
    	RLF CompTempVar623, W
    	MOVWF gbl_FCV_VARIABLE
    	INCF gbl_FCV_VARIABLE, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439660
    ; } FCM_porta function end
    
    	ORG 0x0000009C
    FCM_pord_00000
    ; { FCM_pord ; function begin
    label268439812
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisd
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portd
    	INCF gbl_FCV_VARIABLE, W
    	BTFSC STATUS,Z
    	RETURN
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar630
    	BCF STATUS,C
    	RLF CompTempVar630, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439812
    ; } FCM_pord function end
    
    	ORG 0x000000AE
    FCM_porc_00000
    ; { FCM_porc ; function begin
    label268439799
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisc
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portc
    	MOVF gbl_FCV_VARIABLE, F
    	BTFSC STATUS,Z
    	RETURN
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar629
    	BCF STATUS,C
    	RLF CompTempVar629, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439799
    ; } FCM_porc function end
    
    	ORG 0x000000C0
    FCM_porb_00000
    ; { FCM_porb ; function begin
    label268439786
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisb
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_portb
    	MOVF gbl_FCV_VARIABLE, F
    	BTFSC STATUS,Z
    	RETURN
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar628
    	BCF STATUS,C
    	RLF CompTempVar628, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439786
    ; } FCM_porb function end
    
    	ORG 0x000000D2
    FCM_pora_00000
    ; { FCM_pora ; function begin
    label268439748
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisa
    	BCF STATUS, RP0
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF gbl_porta
    	MOVF gbl_FCV_VARIABLE, W
    	XORLW 0x40
    	BTFSC STATUS,Z
    	GOTO	label268439751
    	MOVLW 0x01
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	MOVF gbl_FCV_VARIABLE, W
    	MOVWF CompTempVar627
    	BCF STATUS,C
    	RLF CompTempVar627, W
    	MOVWF gbl_FCV_VARIABLE
    	GOTO	label268439748
    label268439751
    	BSF STATUS, RP0
    	CLRF gbl_trisa
    	BCF STATUS, RP0
    	CLRF gbl_porta
    	RETURN
    ; } FCM_pora function end
    
    	ORG 0x000000EA
    FCM_led_00000
    ; { FCM_led ; function begin
    	MOVLW 0x01
    	BCF STATUS, RP0
    	BCF STATUS, RP1
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_porta_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_portb_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_portc_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_portd_00000
    	MOVLW 0x1E
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	RETURN
    ; } FCM_led function end
    
    	ORG 0x000000FC
    FCM_led1_00000
    ; { FCM_led1 ; function begin
    	MOVLW 0x01
    	BCF STATUS, RP0
    	BCF STATUS, RP1
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_pora_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_porb_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_porc_00000
    	MOVLW 0x01
    	MOVWF gbl_FCV_VARIABLE
    	CALL FCM_pord_00000
    	MOVLW 0x1E
    	MOVWF delay_s_00000_arg_del
    	CALL delay_s_00000
    	RETURN
    ; } FCM_led1 function end
    
    	ORG 0x0000010E
    FCM_initpo_0001D
    ; { FCM_initport ; function begin
    	BSF STATUS, RP0
    	BCF STATUS, RP1
    	CLRF gbl_trisa
    	BCF STATUS, RP0
    	CLRF gbl_porta
    	BSF STATUS, RP0
    	CLRF gbl_trisb
    	BCF STATUS, RP0
    	CLRF gbl_portb
    	BSF STATUS, RP0
    	CLRF gbl_trisc
    	BCF STATUS, RP0
    	CLRF gbl_portc
    	BSF STATUS, RP0
    	CLRF gbl_trisd
    	BCF STATUS, RP0
    	CLRF gbl_portd
    	RETURN
    ; } FCM_initport function end
    
    	ORG 0x00000120
    main
    ; { main ; function begin
    	BSF STATUS, RP0
    	BSF STATUS, RP1
    	CLRF gbl_ansel
    	CLRF gbl_anselh
    	MOVLW 0xC0
    	BCF STATUS, RP1
    	MOVWF gbl_option_reg
    label268439830
    	MOVLW 0xFF
    	BSF STATUS, RP0
    	IORWF gbl_trise, W
    	MOVWF gbl_trise
    	BCF STATUS, RP0
    	MOVF gbl_porte, W
    	MOVWF gbl_FCV_CAPTEUR
    	CALL FCM_initpo_0001D
    	MOVF gbl_FCV_CAPTEUR, F
    	BTFSC STATUS,Z
    	GOTO	label268439837
    	CALL FCM_led_00000
    	GOTO	label268439830
    label268439837
    	CALL FCM_led1_00000
    	GOTO	label268439830
    ; } main function end
    
    	ORG 0x00000136
    _startup
    	BCF PCLATH,3
    	BCF PCLATH,4
    	GOTO	main
    	ORG 0x00000139
    interrupt
    ; { interrupt ; function begin
    	BCF STATUS, RP0
    	BCF STATUS, RP1
    	SWAPF Int1BContext+D'2', W
    	MOVWF FSR
    	SWAPF Int1BContext+D'1', W
    	MOVWF PCLATH
    	SWAPF Int1BContext, W
    	MOVWF STATUS
    	SWAPF Int1Context, F
    	SWAPF Int1Context, W
    	RETFIE
    ; } interrupt function end
    
    	ORG 0x00002007
    	DW 0x3FFA
    	DW 0x3FFF
    	END
    et puis le schema sous isis avec seulement 2 leds pour mon premier teste:
    merci de voter aide
    Images attachées Images attachées  

  11. #10
    kevin8z

    Re : probleme entre code et schema avec pic

    edit: je vien de me rendre compte aussi que RB2 s'allume 1 seconde donc normale et que RB3 s'allume brievement et que ca revien a RA0 alors que ca devrer continuer jusque RD7

  12. #11
    Gérard

    Re : probleme entre code et schema avec pic

    Plusieurs idées :
    mettre une 10K entre MCLR et VCC
    mettre des capas de découplage de l'alim
    faire des essais en REEL, pas en simu

    et surtout : faire un effort en français, c'est pénible de lire ce que tu écris.

  13. #12
    umfred

    Re : probleme entre code et schema avec pic

    met le code en C, ça sera peut être plus facile à lire que l'assembleur

  14. #13
    kevin8z

    Re : probleme entre code et schema avec pic

    j'ai deja essayer avec une resistance mais je vai reessayer et on ma di qu'il fallait configurer les fusible masi je ne sais pas comment faire donc ca serai a cause de ca que ca ne fonctionne pas

  15. #14
    kevin8z

    Re : probleme entre code et schema avec pic

    voici le code en c:
    Code:
    //************************************************************************************
    //**  
    //**  File name:     C:\Users\kévin\Documents\horloge a leds\flowcode\chenillar combiné 1-0  1-1\1pic\30led01.c
    //**  Generated by:  Flowcode v3.4.7.48
    //**  Date:          Wednesday, September 15, 2010 22:44:55
    //**  Licence:       Professional
    //**  Registered to: ECHO, d.o.o.
    //**  
    //**  
    //**  http://www.matrixmultimedia.com
    //************************************************************************************
    
    
    #define MX_PIC
    
    //Définir pour microcontrôleur
    #define P16F887
    #define MX_EE
    #define MX_EE_SIZE 256
    #define MX_SPI
    #define MX_SPI_C
    #define MX_SPI_SDI 4
    #define MX_SPI_SDO 5
    #define MX_SPI_SCK 3
    #define MX_UART
    #define MX_UART_C
    #define MX_UART_TX 6
    #define MX_UART_RX 7
    #define MX_I2C
    #define MX_MI2C
    #define MX_I2C_C
    #define MX_I2C_SDA 4
    #define MX_I2C_SCL 3
    #define MX_PWM
    #define MX_PWM_CNT 2
    #define MX_PWM_TRIS1 trisc
    #define MX_PWM_1 2
    #define MX_PWM_TRIS2 trisc
    #define MX_PWM_2 1
    
    //Fonctions
    #include <system.h>
    #pragma CLOCK_FREQ 20000000
    
    //Configuration de données
    #pragma DATA 0x2007, 0x3fd2
    #pragma DATA 0x2008, 0x3fff
    
    //Fonctions internes
    #include "C:\Program Files (x86)\Matrix Multimedia\Flowcode V3\FCD\internals.h"
    
    //Déclarations de fonction Macro
    void FCM_porta();
    void FCM_portb();
    void FCM_portc();
    void FCM_portd();
    void FCM_initport();
    void FCM_led();
    void FCM_pora();
    void FCM_led1();
    void FCM_porb();
    void FCM_porc();
    void FCM_pord();
    
    
    //Déclarations de Variable
    char FCV_QUARTE;
    char FCV_VARIABLE;
    char FCV_CAPTEUR;
    
    
    
    //Définitions supplémentaires
    
    
    //Implémentations Macro
    
    void FCM_porta()
    {
    	
    	//Point de jonction
    	//Point de jonction: A
    FCC_porta_A:
    
    
    	//Sortie
    	//Sortie: variable -> PORT A
    	trisa = 0x00;
    	porta = FCV_VARIABLE;
    
    
    	//Pause
    	//Pause: 1 s
    	delay_s(1);
    
    
    	//Condition
    	//Condition: variable <> 255?
    	if (FCV_VARIABLE != 255)
    	{
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Calcul
    		//Calcul:
    		//  variable = variable + 1
    		FCV_VARIABLE = FCV_VARIABLE + 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: A
    		goto FCC_porta_A;
    
    
    	}
    
    
    }
    
    void FCM_portb()
    {
    	
    	//Point de jonction
    	//Point de jonction: C
    FCC_portb_C:
    
    
    	//Sortie
    	//Sortie: variable -> PORT B
    	trisb = 0x00;
    	portb = FCV_VARIABLE;
    
    
    	//Pause
    	//Pause: 1 s
    	delay_s(1);
    
    
    	//Condition
    	//Condition: variable <> 255?
    	if (FCV_VARIABLE != 255)
    	{
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Calcul
    		//Calcul:
    		//  variable = variable + 1
    		FCV_VARIABLE = FCV_VARIABLE + 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: C
    		goto FCC_portb_C;
    
    
    	}
    
    
    }
    
    void FCM_portc()
    {
    	
    	//Point de jonction
    	//Point de jonction: D
    FCC_portc_D:
    
    
    	//Sortie
    	//Sortie: variable -> PORT C
    	trisc = 0x00;
    	portc = FCV_VARIABLE;
    
    
    	//Pause
    	//Pause: 1 s
    	delay_s(1);
    
    
    	//Condition
    	//Condition: variable <> 255?
    	if (FCV_VARIABLE != 255)
    	{
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Calcul
    		//Calcul:
    		//  variable = variable + 1
    		FCV_VARIABLE = FCV_VARIABLE + 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: D
    		goto FCC_portc_D;
    
    
    	}
    
    
    }
    
    void FCM_portd()
    {
    	
    	//Point de jonction
    	//Point de jonction: E
    FCC_portd_E:
    
    
    	//Sortie
    	//Sortie: variable -> PORT D
    	trisd = 0x00;
    	portd = FCV_VARIABLE;
    
    
    	//Pause
    	//Pause: 1 s
    	delay_s(1);
    
    
    	//Condition
    	//Condition: variable <> 63?
    	if (FCV_VARIABLE != 63)
    	{
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Calcul
    		//Calcul:
    		//  variable = variable + 1
    		FCV_VARIABLE = FCV_VARIABLE + 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: E
    		goto FCC_portd_E;
    
    
    	}
    
    
    }
    
    void FCM_initport()
    {
    	
    	//Sortie
    	//Sortie: 0 -> PORT A
    	trisa = 0x00;
    	porta = 0;
    
    
    	//Sortie
    	//Sortie: 0 -> PORT B
    	trisb = 0x00;
    	portb = 0;
    
    
    	//Sortie
    	//Sortie: 0 -> PORT C
    	trisc = 0x00;
    	portc = 0;
    
    
    	//Sortie
    	//Sortie: 0 -> PORT D
    	trisd = 0x00;
    	portd = 0;
    
    
    }
    
    void FCM_led()
    {
    	
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: porta
    	FCM_porta();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: portb
    	FCM_portb();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: portc
    	FCM_portc();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: portd
    	FCM_portd();
    
    
    	//Pause
    	//Pause: 30 s
    	delay_s(30);
    
    
    }
    
    void FCM_pora()
    {
    	
    	//Point de jonction
    	//Point de jonction: A
    FCC_pora_A:
    
    
    	//Sortie
    	//Sortie: variable -> PORT A
    	trisa = 0x00;
    	porta = FCV_VARIABLE;
    
    
    	//Condition
    	//Condition: variable <> 64?
    	if (FCV_VARIABLE != 64)
    	{
    		//Pause
    		//Pause: 1 s
    		delay_s(1);
    
    
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: A
    		goto FCC_pora_A;
    
    
    	} else {
    		//Sortie
    		//Sortie: 0 -> PORT A
    		trisa = 0x00;
    		porta = 0;
    
    
    	}
    
    
    }
    
    void FCM_led1()
    {
    	
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: pora
    	FCM_pora();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: porb
    	FCM_porb();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: porc
    	FCM_porc();
    
    
    	//Calcul
    	//Calcul:
    	//  variable = 1
    	FCV_VARIABLE = 1;
    	
    
    	//Appel d'une Macro
    	//Appel d'une Macro: pord
    	FCM_pord();
    
    
    	//Pause
    	//Pause: 30 s
    	delay_s(30);
    
    
    }
    
    void FCM_porb()
    {
    	
    	//Point de jonction
    	//Point de jonction: B
    FCC_porb_B:
    
    
    	//Sortie
    	//Sortie: variable -> PORT B
    	trisb = 0x00;
    	portb = FCV_VARIABLE;
    
    
    	//Condition
    	//Condition: variable <> 0?
    	if (FCV_VARIABLE != 0)
    	{
    		//Pause
    		//Pause: 1 s
    		delay_s(1);
    
    
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: B
    		goto FCC_porb_B;
    
    
    	}
    
    
    }
    
    void FCM_porc()
    {
    	
    	//Point de jonction
    	//Point de jonction: C
    FCC_porc_C:
    
    
    	//Sortie
    	//Sortie: variable -> PORT C
    	trisc = 0x00;
    	portc = FCV_VARIABLE;
    
    
    	//Condition
    	//Condition: variable <> 0?
    	if (FCV_VARIABLE != 0)
    	{
    		//Pause
    		//Pause: 1 s
    		delay_s(1);
    
    
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: C
    		goto FCC_porc_C;
    
    
    	}
    
    
    }
    
    void FCM_pord()
    {
    	
    	//Point de jonction
    	//Point de jonction: D
    FCC_pord_D:
    
    
    	//Sortie
    	//Sortie: variable -> PORT D
    	trisd = 0x00;
    	portd = FCV_VARIABLE;
    
    
    	//Condition
    	//Condition: variable <> 255?
    	if (FCV_VARIABLE != 255)
    	{
    		//Pause
    		//Pause: 1 s
    		delay_s(1);
    
    
    		//Calcul
    		//Calcul:
    		//  variable = variable << 1
    		FCV_VARIABLE = FCV_VARIABLE << 1;
    		
    
    		//Aller au point de jonction
    		//Aller au point de jonction: D
    		goto FCC_pord_D;
    
    
    	}
    
    
    }
    
    //Installation supplémentaire
    
    
    void main()
    {
    	
    	//Initialisation
    	ansel = 0;
    anselh = 0;
    
    
    	//Code d'initialisation d'Interruption
    	option_reg = 0xC0;
    
    
    	//Boucle
    	//Boucle: Tant que1
    	while (1)
    	{
    		//Point de jonction
    		//Point de jonction: F
    FCC_Principal_F:
    
    
    		//Entrée
    		//Entrée: PORT E -> capteur
    		trise = trise | 0xff;
    		FCV_CAPTEUR = porte;
    
    
    		//Appel d'une Macro
    		//Appel d'une Macro: initport
    		FCM_initport();
    
    
    		//Condition
    		//Condition: capteur <> 0?
    		if (FCV_CAPTEUR != 0)
    		{
    			//Appel d'une Macro
    			//Appel d'une Macro: led
    			FCM_led();
    
    
    			//Aller au point de jonction
    			//Aller au point de jonction: F
    			goto FCC_Principal_F;
    
    
    		} else {
    			//Appel d'une Macro
    			//Appel d'une Macro: led1
    			FCM_led1();
    
    
    		}
    
    
    		//Aller au point de jonction
    		//Aller au point de jonction: F
    		goto FCC_Principal_F;
    
    
    	}
    
    
    	mainendloop: goto mainendloop;
    }
    
    void interrupt(void)
    {
    }

  16. #15
    freepicbasic

    Re : probleme entre code et schema avec pic

    le ANSEL est positionné dans le main , c'est la première chose qu'il fait...

    vérifier si le MCLR est relié au +5V avec une resistance.
    vérifier si la résistance de rappel est bien sur le poussoir.
    verifier si les bits de config sont bien programmés.
    vérifier si les bits sont bien en HS pas en XT ou autre.

    (faire une prière pour que ça fonctionne en 25Mhz.)
    A+, pat

  17. #16
    Gérard

    Re : probleme entre code et schema avec pic

    Citation Envoyé par kevin8z Voir le message
    j'ai deja essayer avec une resistance mais je vai reessayer et on ma di qu'il fallait configurer les fusible masi je ne sais pas comment faire donc ca serai a cause de ca que ca ne fonctionne pas
    Tous les fusibles sont expliqués dans les datasheet.
    Il suffit de lire !

  18. #17
    kevin8z

    Re : probleme entre code et schema avec pic

    pourrai tu me dire dans quelle partis du datasheet stp?

  19. #18
    invite624dc4b7

    Re : probleme entre code et schema avec pic

    Ton code est fait pour tourner à 20 Mhz et non à 25Mhz comme dans tes essais.

  20. #19
    kevin8z

    Re : probleme entre code et schema avec pic

    oui mais sur isis sa devrer fonctionner avec un quartz de 20mhz enfin le probleme vien de la config des fusible et je trouve pas ou c'est ecrit dans le datasheet

  21. #20
    Gérard

    Re : probleme entre code et schema avec pic

    Citation Envoyé par kevin8z Voir le message
    oui mais sur isis sa devrer fonctionner avec un quartz de 20mhz enfin le probleme vien de la config des fusible et je trouve pas ou c'est ecrit dans le datasheet
    ISIS n'est pas la vrai vie, c'est de la simulation.

  22. #21
    Gérard

    Re : probleme entre code et schema avec pic

    Citation Envoyé par kevin8z Voir le message
    pourrais- tu me dire dans quelle partie du datasheet stp?

    http://ww1.microchip.com/downloads/e...Doc/41291F.pdf
    page 210

    Et cent balles et un mars ?

  23. #22
    kevin8z

    Re : probleme entre code et schema avec pic

    merci je fairer le montage en reel, et bon merci pour la page du datasheet, et je ne peut pas apprendre sans aide je debute dans la programmation des PICs et pour mes debut je pence que c'est normale que je demande un peut d'aide pour mon premier programme.

  24. #23
    invite7ebe6b01

    Re : probleme entre code et schema avec pic

    ya un super livre tres bien fais qui s appelle apprendre la prog des pic....je te le conseille

  25. #24
    Gérard

    Re : probleme entre code et schema avec pic

    Citation Envoyé par kevin8z Voir le message
    merci je fairer le montage en reel, et bon merci pour la page du datasheet, et je ne peut pas apprendre sans aide je debute dans la programmation des PICs et pour mes debut je pence que c'est normale que je demande un peut d'aide pour mon premier programme.
    C'est quoi de l'aide pour toi ? Qu'on te mâche le travail ?
    As-tu lu les cours de Bigonoff ?
    Les lectures des datasheets sont obligatoires même pour les non-débutants, ne serait-ce que pour les fusibles et les registres.

    Encore un truc : es-tu aussi débutant en orthographe ? Parce que te lire demande beaucoup d'efforts.

  26. #25
    Ridezebigone

    Re : probleme entre code et schema avec pic

    Certes la simu ce n'est pas la vraie vie, mais si son programme ne marche pas sous proteus , il y a peu de chances qu'il tourne en vrai... (si le montage est identique à celui de proteus). J'ai simulé des montage bien plus complexes sous proteus, et j'ai même debbugé mon code avec proteus car les conditions où mon montage plantait était trop longue à reproduire en vrai...

    j'ai regardé brièvement ton code :

    tu autorises des interruptions, mais ta routine d'interruption est vide... si une it survient, tu restes bloqué dedans?

    c'est un code C généré par autre chose non?? dans ta boucle while de ton main, il y a une bouche infini avec un goto ... un peu étrange meme si ce n'est probablement pas cela qui bloque ton programme.

    tes goto FCC_Principal_F sont inutiles

    je ne suis pas assez calé en langage C mais je me demande si tu n'exploses pas ta pile.... tu fais systématique un goto avant la fin de tes If, ça me parait pas trés carré comme manière de coder.

  27. #26
    umfred

    Re : probleme entre code et schema avec pic

    c'est généré avec flowcode, c'est pour ça que c'est pas terrible comme code

    les interruptions ne se sont a priori pas autorisé (le registre INTCON n'a pas l'air d'être modifié).


    Avec quels conditions initiales sur le port E as-tu fait tes tests? car d'après le code, il fait un cycle complet de sorties avant de tester à nouveau l'entrée sur le port E.
    Tu pourrais faire aussi un essai "bête" pour vérifier que ça fonctionne:
    si RE0=0, alors port_A =255 (tout allumé), sinon port_A=0 (tout éteint)

  28. #27
    kevin8z

    Re : probleme entre code et schema avec pic

    ok merci, je fairer mais teste une foi que j'aurai reussi a configurer les fusible du pic

  29. #28
    freepicbasic

    Re : probleme entre code et schema avec pic

    si mettais tu fichier flc sur le forum, on pourrait tester le prog ,
    enfin si c'est pas encore une nouvelle version...
    A+, pat

  30. #29
    kevin8z

    Re : probleme entre code et schema avec pic

    salut, non j'ai l'ancienne version flowcode v3 je vous poste ca dessuite.

  31. #30
    kevin8z

    Re : probleme entre code et schema avec pic

    voici le code
    Fichiers attachés Fichiers attachés

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Code en C pour PIC avec Sensirion SHT75 / SHT71
    Par invitedd558ae9 dans le forum Électronique
    Réponses: 4
    Dernier message: 13/04/2010, 22h50
  2. Probleme avec le schéma d'un programmateur de PIC...
    Par inviteadef15e3 dans le forum Électronique
    Réponses: 8
    Dernier message: 20/11/2009, 20h46
  3. Code en C pour faire clignoter une led avec un Pic
    Par invitedd558ae9 dans le forum Électronique
    Réponses: 6
    Dernier message: 11/04/2009, 16h30
  4. [Pic] Probleme avec code
    Par invite07bc4d05 dans le forum Électronique
    Réponses: 1
    Dernier message: 18/03/2009, 08h40
  5. recuperation de code ir rc5 avec pic
    Par invite13ed46c1 dans le forum Électronique
    Réponses: 6
    Dernier message: 20/09/2008, 18h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...