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); } } }
-----