Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.25 KB | None | 0 0
  1. char csq_query_msg[]="AT+CSQ\r";
  2. char sms_hdr[]="AT+CMGS="0698090262"\r";
  3. char csq_answer[5]={'0', '0', '0', '0', '0'};
  4. char input_buffer[99];
  5. char lettre = 'A';
  6. char egal = '=';
  7. char ctrlz = 26;
  8. while(1){
  9.  
  10.     /* On attend un peu */
  11.     compteur = 0;
  12.     while(compteur<4000);
  13.    
  14.     /* On vide le buffer d'entrée */
  15.     for(i=0; i<100; i++){
  16.         input_buffer[i] = 0;
  17.     }
  18.     t = 0;
  19.    
  20.     /* On demande le CSQ */
  21.     while(PIR1bits.TX1IF);
  22.     puts1USART(csq_query_msg);
  23.    
  24.     /* On attend que le MODEM nous donne le CSQ (buffer input rempli) */
  25.     while(t<20);
  26.    
  27.     /* On releve le CSQ */
  28.     for(i=0; i<=5; i++){
  29.         csq_answer[i] = input_buffer[i+18];
  30.     }
  31.    
  32.     /* On envoi le sms */
  33.     /* On envoi les headers */
  34.     while(PIR1bits.TX1IF);
  35.     puts1USART(sms_hdr);
  36.     /* On envoi la lettre identifiant le sms */
  37.     while(PIR1bits.TX1IF);
  38.     if(lettre > 90)
  39.      lettre = 65;
  40.     Write1USART(lettre++);
  41.     /* On envoi le egal */
  42.     while(PIR1bits.TX1IF);
  43.     Write1USART(egal);
  44.     /* On envoi le relevé CSQ */
  45.     for(i=0; i<=5; i++){
  46.         while(PIR1bits.TX1IF);
  47.         Write1USART(csq_answer[i]);
  48.     }
  49.     /* On envoi le CTRLZ */
  50.     while(PIR1bits.TX1IF);
  51.     Write1USART(ctrlz);
  52.    
  53. }
  54.  
  55. a mettre dans l'interrupt :
  56.  
  57. if(PIR1bits.RC1IF){
  58.    input_buffer[t++] = RCREG1;
  59.     if(t=99)
  60.         t=0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement