SmartGPS on PIC18f4520 with MikroC
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

SmartGPS on PIC18f4520 with MikroC



  1. #1
    forex59

    SmartGPS on PIC18f4520 with MikroC


    ------

    Bonjours,
    Je travail sur Mikroc compiler avec un pic 18f4520.
    Je suis en train de realiser un programme capable d'afficher les trames GPS sur un ecran LCD, cependant lorsque j'affiche ma trame, je ne vois que la 1ere lettre qui s'actualise au debut puis se fige et pu rien,
    si quelqu'un a une idee de mon probleme, je suis preneur, je met ci dessous mon progamme en question.


    Code:
    char  txt[768];
    char  *string;
    int   i;
    unsigned short ready;
    void     interrupt() {
    
    
    
    if(PIR1.F0 == 1) {
                             //if interrupt is generated by TMR1IF
        //Stop Timer 1:
        T1CON.F0 =0;
    //Set TMR1ON to 0
        ready = 1 ;                     //set data ready
        i = 0;                       //reset array counter
        PIR1.F0 =0; //Set TMR1IF to 0
      }
    if(PIR1.F5 == 1) {  //if interrupt is generated by RCIF
    if (Usart_Data_Ready())
    txt[i++] = Usart_Read();
    if(txt[i-1] ==0)
          i = 0;
    if(i ==768) i =0;
        //Stop Timer 1:
        T1CON.F0 = 0;
                     //Set TMR1ON to 0
        //Timer1 starts counting from 15536:
        TMR1L = 0xB0;
        TMR1H = 0x3C;
     //Start Timer 1:
        T1CON.F0 = 1;
                     //Set TMR1ON to 1
        PIR1.F5 = 0;
    //Set RCIF to 0
      }
    }
    
    void main() {
    
    ADCON1=0x0f;
    PORTB=0x00;    // PORTB is output
    Lcd_config(&PORTB,4,5,6,3,2,1,0);        // Initialize LCD connected to PORTB
    Lcd_Cmd(Lcd_CLEAR);       // Clear display
    Lcd_Cmd(Lcd_CURSOR_OFF);
    TRISB=0x00;
    
    Delay_ms(100);
    ready=0;
    
    T1CON.F5=1;
    T1CON.F4=1;
    
    PIE1.F0=1;
    
    TMR1L=0xB0;
    TMR1H=0x3c;
    
    PIR1.F0=0;
    
    Usart_init(9600);
    
    
    INTCON.F7=1;
    INTCON.F6=1;
    
    T1CON.F0=1;
    
    while(1)
    {
    
    
    RCSTA.F1=0;
    RCSTA.F2=0;
    
    if (ready==0){
    Lcd_Out(2,1,"DataGPS");
    }
    
    if (ready==1){
    
    ready=0;
    string=strstr(txt,"$GPGLL");
    
    Lcd_Out(1, 1, txt);
    }
    }
     }

    -----
    Dernière modification par JPL ; 26/05/2015 à 12h38. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    forex59

    Re : SmartGPS on PIC18f4520 with MikroC

    Hello,
    Personne à une petite idée ? :/

  3. #3
    invite03481543

    Re : SmartGPS on PIC18f4520 with MikroC

    Bonsoir,

    votre variable "ready" doit être déclarée en volatile puisqu'elle est modifiée dans la routine d'interruption et également dans le main():

    Code:
    volatile unsigned short ready;

  4. #4
    invite03481543

    Re : SmartGPS on PIC18f4520 with MikroC

    Une déclaration en "char" est suffisante, pour mikroC "unsigned short" ou "char" est interprété de la même manière: 1 octet non signé.
    Il faut préciser "signed char" si vous voulez traité un octet signé.
    @+

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

    Re : SmartGPS on PIC18f4520 with MikroC

    bonsoir,

    Dans la routine d'interruption il faut traiter AUSSi , les erreurs de com
    OERR et FERR
    et faire au plus court

    Code:
    ...
    if(RCIF_bit == 1) 
    {  //if interrupt is generated by RCIF
    txt[i++] = RCREG;
    ...

Discussions similaires

  1. pic18f4520 et ecran lcd ...
    Par invite898d521c dans le forum Électronique
    Réponses: 1
    Dernier message: 03/09/2012, 14h29
  2. Comparateur PIC18f4520
    Par inviteceb35e31 dans le forum Électronique
    Réponses: 5
    Dernier message: 08/09/2011, 16h04
  3. Programme en C SmartGPS
    Par invitef97198f3 dans le forum Électronique
    Réponses: 11
    Dernier message: 03/02/2010, 17h19
  4. Pb programation pic18f4520
    Par invitef3cad303 dans le forum Électronique
    Réponses: 2
    Dernier message: 28/04/2009, 08h10
  5. pic18F4520
    Par bird12358 dans le forum Électronique
    Réponses: 0
    Dernier message: 04/01/2009, 17h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.