probléme define
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

probléme define



  1. #1
    mortaurat

    probléme define


    ------

    Bonjour
    j'ai un petit probléme avec le programme suivant.
    Code:
    #include <16f877A.h>
    #use delay (clock = 2000000)
    
    #define  rs  PIN_A5                    //COMMNAD/DATA SELECT           
    #define  rw  PIN_A4                    //READ/WRITE SELECT             
    #define  e   PIN_A3                    //ENABLE SIGNAL                 
    #define  psb PIN_A2                    //PARALLEL/SERIAL 
    #define  rst PIN_A0                    //RESET SIGNAL   
    
    
    void lcd_init();                    //LCD init       
    
    //initialisation du LCD 
    void lcd_init()
    {
      rst=0;                         //reset LCD
      delay_us(10);                       
      rst=1;                         //LCD normal work.
      psb=1;                         //8 bit as parrallel.
    }
    pour rst=0; rst=1; et psb=1; il me sort expecting LVALUE such as variable name or *expression.

    Avez vous une idée ?

    -----

  2. #2
    sdec25

    Re : probléme define

    Salut.
    Si tu mets PIN_A5=0; ça marche ?
    Si non, regarde dans les noms des sorties dans le fichier 16f877A.h

  3. #3
    mortaurat

    Re : probléme define

    Non toujours la même erreur.
    Et le nom de sorti est bien PIN_Ax.

    Je pense qu'il doit y avoir une erreur avec l'extension .c ou .h

  4. #4
    sdec25

    Re : probléme define

    Et le nom de sorti est bien PIN_Ax.
    Poste le contenu du fichier .h (au moins la partie où il y a PIN_Ax s'il est trop gros).

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

    Re : probléme define

    Code:
    //////// Standard Header file for the PIC16F877A device ////////////////
    #device PIC16F877A
    #nolist
    //////// Program memory: 8192x14  Data RAM: 367  Stack: 8
    //////// I/O: 33   Analog Pins: 8
    //////// Data EEPROM: 256
    //////// C Scratch area: 77   ID Location: 2000
    //////// Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,DEBUG,NODEBUG
    //////// Fuses: NOPROTECT,NOBROWNOUT,BROWNOUT,LVP,NOLVP,CPD,NOCPD,WRT_50%
    //////// Fuses: NOWRT,WRT_5%,WRT_25%
    //////// 
    ////////////////////////////////////////////////////////////////// I/O
    // Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
    //                         PORT_x_PULLUPS(), INPUT(),
    //                         OUTPUT_LOW(), OUTPUT_HIGH(),
    //                         OUTPUT_FLOAT(), OUTPUT_BIT()
    // Constants used to identify pins in the above are:
    
    #define PIN_A0  40
    #define PIN_A1  41
    #define PIN_A2  42
    #define PIN_A3  43
    #define PIN_A4  44
    #define PIN_A5  45
    
    #define PIN_B0  48
    #define PIN_B1  49
    #define PIN_B2  50
    #define PIN_B3  51
    #define PIN_B4  52
    #define PIN_B5  53
    #define PIN_B6  54
    #define PIN_B7  55
    
    #define PIN_C0  56
    #define PIN_C1  57
    #define PIN_C2  58
    #define PIN_C3  59
    #define PIN_C4  60
    #define PIN_C5  61
    #define PIN_C6  62
    #define PIN_C7  63
    
    #define PIN_D0  64
    #define PIN_D1  65
    #define PIN_D2  66
    #define PIN_D3  67
    #define PIN_D4  68
    #define PIN_D5  69
    #define PIN_D6  70
    #define PIN_D7  71
    
    #define PIN_E0  72
    #define PIN_E1  73
    #define PIN_E2  74
    
    ////////////////////////////////////////////////////////////////// Useful defines
    #define FALSE 0
    #define TRUE 1
    
    #define BYTE int
    #define BOOLEAN short int
    
    #define getc getch
    #define fgetc getch
    #define getchar getch
    #define putc putchar
    #define fputc putchar
    #define fgets gets
    #define fputs puts
    
    ////////////////////////////////////////////////////////////////// Control
    // Control Functions:  RESET_CPU(), SLEEP(), RESTART_CAUSE()
    // Constants returned from RESTART_CAUSE() are:
    #define WDT_FROM_SLEEP  3     
    #define WDT_TIMEOUT     11    
    #define MCLR_FROM_SLEEP 19    
    #define MCLR_FROM_RUN   27    
    #define NORMAL_POWER_UP 24    
    #define BROWNOUT_RESTART 26   
    
    
    ////////////////////////////////////////////////////////////////// Timer 0
    // Timer 0 (AKA RTCC)Functions: SETUP_COUNTERS() or SETUP_TIMER_0(),
    //                              SET_TIMER0() or SET_RTCC(),
    //                              GET_TIMER0() or GET_RTCC()
    // Constants used for SETUP_TIMER_0() are:
    #define RTCC_INTERNAL   0
    #define RTCC_EXT_L_TO_H 32
    #define RTCC_EXT_H_TO_L 48
    
    #define RTCC_DIV_1      8
    #define RTCC_DIV_2      0
    #define RTCC_DIV_4      1
    #define RTCC_DIV_8      2
    #define RTCC_DIV_16     3
    #define RTCC_DIV_32     4
    #define RTCC_DIV_64     5
    #define RTCC_DIV_128    6
    #define RTCC_DIV_256    7
    
    
    #define RTCC_8_BIT      0     
    
    // Constants used for SETUP_COUNTERS() are the above
    // constants for the 1st param and the following for
    // the 2nd param:
    
    ////////////////////////////////////////////////////////////////// WDT
    // Watch Dog Timer Functions: SETUP_WDT() or SETUP_COUNTERS() (see above)
    //                            RESTART_WDT()
    //
    
    #define WDT_18MS        0x8008   
    #define WDT_36MS        9   
    #define WDT_72MS       10   
    #define WDT_144MS      11   
    #define WDT_288MS      12   
    #define WDT_576MS      13   
    #define WDT_1152MS     14   
    #define WDT_2304MS     15   
    
    ////////////////////////////////////////////////////////////////// Timer 1
    // Timer 1 Functions: SETUP_TIMER_1, GET_TIMER1, SET_TIMER1
    // Constants used for SETUP_TIMER_1() are:
    //      (or (via |) together constants from each group)
    #define T1_DISABLED         0
    #define T1_INTERNAL         0x85
    #define T1_EXTERNAL         0x87
    #define T1_EXTERNAL_SYNC    0x83
    
    #define T1_CLK_OUT          8
    
    #define T1_DIV_BY_1         0
    #define T1_DIV_BY_2         0x10
    #define T1_DIV_BY_4         0x20
    #define T1_DIV_BY_8         0x30
    
    ////////////////////////////////////////////////////////////////// Timer 2
    // Timer 2 Functions: SETUP_TIMER_2, GET_TIMER2, SET_TIMER2
    // Constants used for SETUP_TIMER_2() are:
    #define T2_DISABLED         0
    #define T2_DIV_BY_1         4
    #define T2_DIV_BY_4         5
    #define T2_DIV_BY_16        6
    
    ////////////////////////////////////////////////////////////////// CCP
    // CCP Functions: SETUP_CCPx, SET_PWMx_DUTY
    // CCP Variables: CCP_x, CCP_x_LOW, CCP_x_HIGH
    // Constants used for SETUP_CCPx() are:
    #define CCP_OFF                         0
    #define CCP_CAPTURE_FE                  4
    #define CCP_CAPTURE_RE                  5
    #define CCP_CAPTURE_DIV_4               6
    #define CCP_CAPTURE_DIV_16              7
    #define CCP_COMPARE_SET_ON_MATCH        8
    #define CCP_COMPARE_CLR_ON_MATCH        9
    #define CCP_COMPARE_INT                 0xA
    #define CCP_COMPARE_RESET_TIMER         0xB
    #define CCP_PWM                         0xC
    #define CCP_PWM_PLUS_1                  0x1c
    #define CCP_PWM_PLUS_2                  0x2c
    #define CCP_PWM_PLUS_3                  0x3c
    long CCP_1;
    #byte   CCP_1    =                      0x15          
    #byte   CCP_1_LOW=                      0x15          
    #byte   CCP_1_HIGH=                     0x16          
    long CCP_2;
    #byte   CCP_2    =                      0x1B        
    #byte   CCP_2_LOW=                      0x1B        
    #byte   CCP_2_HIGH=                     0x1C        
    ////////////////////////////////////////////////////////////////// PSP
    // PSP Functions: SETUP_PSP, PSP_INPUT_FULL(), PSP_OUTPUT_FULL(),
    //                PSP_OVERFLOW(), INPUT_D(), OUTPUT_D()
    // PSP Variables: PSP_DATA
    // Constants used in SETUP_PSP() are:
    #define PSP_ENABLED                     0x10
    #define PSP_DISABLED                    0
    
    #byte   PSP_DATA=                       8   
    
    ////////////////////////////////////////////////////////////////// SPI
    // SPI Functions: SETUP_SPI, SPI_WRITE, SPI_READ, SPI_DATA_IN
    // Constants used in SETUP_SPI() are:
    #define SPI_MASTER       0x20
    #define SPI_SLAVE        0x24
    #define SPI_L_TO_H       0
    #define SPI_H_TO_L       0x10
    #define SPI_CLK_DIV_4    0
    #define SPI_CLK_DIV_16   1
    #define SPI_CLK_DIV_64   2
    #define SPI_CLK_T2       3
    #define SPI_SS_DISABLED  1
    
    #define SPI_SAMPLE_AT_END 0x8000
    #define SPI_XMIT_L_TO_H  0x4000
    
    ////////////////////////////////////////////////////////////////// UART
    // Constants used in setup_uart() are:
    // FALSE - Turn UART off
    // TRUE  - Turn UART on
    #define UART_ADDRESS           2
    #define UART_DATA              4
    ////////////////////////////////////////////////////////////////// COMP
    // Comparator Variables: C1OUT, C2OUT
    // Constants used in setup_comparator() are:
    #define A0_A3_A1_A3  0xfff04
    #define A0_A3_A1_A2_OUT_ON_A4_A5  0xfcf03
    #define A0_A3_A1_A3_OUT_ON_A4_A5  0xbcf05
    #define NC_NC_NC_NC  0x0ff07
    #define A0_A3_A1_A2  0xfff02
    #define A0_A3_NC_NC_OUT_ON_A4  0x9ef01
    #define A0_VR_A1_VR 0x3ff06
    #define A3_VR_A2_VR 0xcff0e
    #define CP1_INVERT  0x0000010
    #define CP2_INVERT  0x0000020
    
    #bit C1OUT = 0x9c.6      
    #bit C2OUT = 0x9c.7      
    
    ////////////////////////////////////////////////////////////////// VREF
    // Constants used in setup_vref() are:
    //
    #define VREF_LOW  0xa0
    #define VREF_HIGH 0x80
    // Or (with |) the above with a number 0-15
    #define VREF_A2   0x40
    
    
    
    ////////////////////////////////////////////////////////////////// ADC
    // ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS() (aka SETUP_PORT_A),
    //                SET_ADC_CHANNEL(), READ_ADC()
    // Constants used for SETUP_ADC() are:
    #define ADC_OFF                 0              // ADC Off
    #define ADC_CLOCK_DIV_2   0x10000
    #define ADC_CLOCK_DIV_4    0x4000
    #define ADC_CLOCK_DIV_8    0x0040
    #define ADC_CLOCK_DIV_16   0x4040
    #define ADC_CLOCK_DIV_32   0x0080
    #define ADC_CLOCK_DIV_64   0x4080
    #define ADC_CLOCK_INTERNAL 0x00c0              // Internal 2-6us
    
    // Constants used in SETUP_ADC_PORTS() are:
    #define NO_ANALOGS                           7    // None
    #define ALL_ANALOG                           0    // A0 A1 A2 A3 A5 E0 E1 E2 
    #define AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF 1    // A0 A1 A2 A5 E0 E1 E2 VRefh=A3     
    #define AN0_AN1_AN2_AN3_AN4                  2    // A0 A1 A2 A3 A5          
    #define AN0_AN1_AN2_AN4_VSS_VREF             3    // A0 A1 A2 A4 VRefh=A3              
    #define AN0_AN1_AN3                          4    // A0 A1 A3
    #define AN0_AN1_VSS_VREF                     5    // A0 A1 VRefh=A3
    #define AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF 0x08    // A0 A1 A5 E0 E1 E2 VRefh=A3 VRefl=A2     
    #define AN0_AN1_AN2_AN3_AN4_AN5           0x09    // A0 A1 A2 A3 A5 E0        
    #define AN0_AN1_AN2_AN4_AN5_VSS_VREF      0x0A    // A0 A1 A2 A5 E0 VRefh=A3           
    #define AN0_AN1_AN4_AN5_VREF_VREF         0x0B    // A0 A1 A5 E0 VRefh=A3 VRefl=A2           
    #define AN0_AN1_AN4_VREF_VREF             0x0C    // A0 A1 A4 VRefh=A3 VRefl=A2              
    #define AN0_AN1_VREF_VREF                 0x0D    // A0 A1 VRefh=A3 VRefl=A2
    #define AN0                               0x0E    // A0
    #define AN0_VREF_VREF                     0x0F    // A0 VRefh=A3 VRefl=A2
    #define ANALOG_RA3_REF         0x1         //!old only provided for compatibility
    #define A_ANALOG               0x2         //!old only provided for compatibility  
    #define A_ANALOG_RA3_REF       0x3         //!old only provided for compatibility  
    #define RA0_RA1_RA3_ANALOG     0x4         //!old only provided for compatibility
    #define RA0_RA1_ANALOG_RA3_REF 0x5         //!old only provided for compatibility
    #define ANALOG_RA3_RA2_REF              0x8   //!old only provided for compatibility
    #define ANALOG_NOT_RE1_RE2              0x9   //!old only provided for compatibility  
    #define ANALOG_NOT_RE1_RE2_REF_RA3      0xA   //!old only provided for compatibility  
    #define ANALOG_NOT_RE1_RE2_REF_RA3_RA2  0xB   //!old only provided for compatibility  
    #define A_ANALOG_RA3_RA2_REF            0xC   //!old only provided for compatibility  
    #define RA0_RA1_ANALOG_RA3_RA2_REF      0xD   //!old only provided for compatibility
    #define RA0_ANALOG                      0xE   //!old only provided for compatibility
    #define RA0_ANALOG_RA3_RA2_REF          0xF   //!old only provided for compatibility
    
    
    // Constants used in READ_ADC() are:
    #define ADC_START_AND_READ     7   // This is the default if nothing is specified
    #define ADC_START_ONLY         1
    #define ADC_READ_ONLY          6
    
    
    
    ////////////////////////////////////////////////////////////////// INT
    // Interrupt Functions: ENABLE_INTERRUPTS(), DISABLE_INTERRUPTS(),
    //                      EXT_INT_EDGE()
    //
    // Constants used in EXT_INT_EDGE() are:
    #define L_TO_H              0x40
    #define H_TO_L                 0
    // Constants used in ENABLE/DISABLE_INTERRUPTS() are:
    #define GLOBAL                    0x0BC0
    #define INT_RTCC                  0x0B20
    #define INT_RB                    0xFF0B08
    #define INT_EXT                   0x0B10
    #define INT_AD                    0x8C40
    #define INT_TBE                   0x8C10
    #define INT_RDA                   0x8C20
    #define INT_TIMER1                0x8C01
    #define INT_TIMER2                0x8C02
    #define INT_CCP1                  0x8C04
    #define INT_CCP2                  0x8D01
    #define INT_SSP                   0x8C08
    #define INT_PSP                   0x8C80
    #define INT_BUSCOL                0x8D08
    #define INT_EEPROM                0x8D10
    #define INT_TIMER0                0x0B20
    #define INT_COMP                  0x8D40
    
    #list

  7. #6
    mortaurat

    Re : probléme define

    j'essaye de faire une librairie pour mon afficheur LCD.
    Si dans "mondriver.c"
    j'ecris:
    Code:
    #define  rs  PIN_A5                    //COMMNAD/DATA SELECT
    #define  rw  PIN_A4                    //READ/WRITE SELECT             
    #define  e   PIN_A3                    //ENABLE SIGNAL                 
    #define  psb PIN_A2                    //PARALLEL/SERIAL 
    #define  rst PIN_A0                    //RESET SIGNAL   
    
    void lcd_init();                    //LCD init       
    
    //initialisation du LCD 
    void lcd_init()
    {
      rst=0;                         //reset LCD
      delay_us(10);                       
      rst=1;                         //LCD normal work.
      psb=1;                         //8 bit as parrallel.
    }
    il me sort a #DEVICE required before this line ....

  8. #7
    sdec25

    Re : probléme define

    Donc les constantes PIN_Ax ne sont que des identifiants, pas des variables.
    La solution est donnée dans le .h :
    // Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
    // PORT_x_PULLUPS(), INPUT(),
    // OUTPUT_LOW(), OUTPUT_HIGH(),
    // OUTPUT_FLOAT(), OUTPUT_BIT()
    // Constants used to identify pins in the above are:
    Essaie Output_High(PIN_Ax) par exemple.
    Si tu trouves ça trop lourd on peut lier les ports à des struct.
    Dernière modification par sdec25 ; 26/07/2009 à 18h55. Motif: orthographe

  9. #8
    sdec25

    Re : probléme define

    Citation Envoyé par mortaurat Voir le message
    il me sort a #DEVICE required before this line ....
    Il faut sûrement préciser le PIC avec #device.
    Regarde dans la doc de ton compilateur, normalement tout y est expliqué.

  10. #9
    mortaurat

    Re : probléme define

    Oki,
    je vais faire des output_hight et output_low, ca a l'air de marcher.

    Merci

  11. #10
    invite93d0bd01

    Re : probléme define

    bonjour
    tu peu pas affecter directement une valeur à l'une des pins du pic,
    alor au lieu d'écrire :

    rst=0;
    delay_us(10);
    rst=1;
    psb=1;
    tu doit ecrir ce qui suit:
    output_bit(rst,0);
    delay_us(10);
    output_bit(rst,1);
    output_bit(psb,1);

    je l'ai testé et ca marché.....

  12. #11
    invited2a6aeca

    Re : probléme define

    Je crois que hassene3985 a trouvé la solution, n'oubli pas que la broche A4 de ton PIC a besoin d'un pull-up pour que ta broche de sortie fonctionne.

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/05/2011, 13h27
  2. Un petit problème qui me pause problème lol
    Par invitef2853e5d dans le forum Mathématiques du supérieur
    Réponses: 13
    Dernier message: 31/03/2009, 16h28
  3. limite suite défine par une integrale
    Par invite8aeefd6e dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 03/06/2008, 11h07
  4. problème avec un lecteur mp4(le problème vient de l'ordinateur)
    Par inviteaca1b987 dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 29/10/2007, 17h53
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...