PIC E SIM340
13 Anni 1 Mese fa #6
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Risposta da Gianni al topic Re: PIC E SIM340
Se usi Windows, e penso di si perchè hai detto che usi Hyperterminal, premendo INVIO sulla tastiera, lui ti manda un ritorno carrello e un nuova linea (\r\n).
Quindi fin qui non ci piove: devi mettere \r\n alla fine della stringa.
Quindi se sul pc ti funziona ma col pic non ricevi l'OK, hai qualche problema nella ricezione, che potrebbe essere un problema del software che hai scritto.
Quindi fin qui non ci piove: devi mettere \r\n alla fine della stringa.
Quindi se sul pc ti funziona ma col pic non ricevi l'OK, hai qualche problema nella ricezione, che potrebbe essere un problema del software che hai scritto.
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Gianni
- Elite Member
Riduci
Di più
13 Anni 1 Mese fa #7
da davix10
Risposta da davix10 al topic Re: PIC E SIM340
#include <usart.h>
#include <delays.h>
#include <stdlib.h>
#include <adc.h>
#include <ctype.h>
#pragma config OSC = INTIO7, WDT=OFF, MCLRE = OFF,DEBUG = OFF,LVP = OFF
#pragma config PBADEN = OFF
void main(void)
{
OSCCON = 0b01110110;
// Imposto PORTA tutti ingressi
LATA = 0x00;
TRISA = 0xFF;
// Imposto PORTB tutti uscite
LATB = 0x00;
TRISB = 0x00;
// Imposto PORTC tutti ingressi
LATC = 0x00;
TRISC = 0xFF;
// Imposto PORTD tutte uscite
LATD = 0x00;
TRISD = 0x00;
// Imposto PORTE tutti ingressi
LATE = 0x00;
TRISE = 0xFF;
RCSTAbits.SPEN=1;
LATC=0;
TRISC=255;
TRISB=0b01000000;
PORTBbits.RB7=1;
Delay10KTCYx(255);
PORTBbits.RB7=0;
Delay10KTCYx(200);
PORTBbits.RB7=1;
// Quarzo 8MHz
// Formato 8 bit
// 1 bit di stop
// Baud rate 9600bit/s
// Interruzioni disattive
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
51);
while (1)
{
unsigned char data=0,i=0;
char Text;
putrsUSART ("AT\r\n"); // AT command test
Delay10KTCYx (250); // response: AT
}
Questo è il mo programma
#include <delays.h>
#include <stdlib.h>
#include <adc.h>
#include <ctype.h>
#pragma config OSC = INTIO7, WDT=OFF, MCLRE = OFF,DEBUG = OFF,LVP = OFF
#pragma config PBADEN = OFF
void main(void)
{
OSCCON = 0b01110110;
// Imposto PORTA tutti ingressi
LATA = 0x00;
TRISA = 0xFF;
// Imposto PORTB tutti uscite
LATB = 0x00;
TRISB = 0x00;
// Imposto PORTC tutti ingressi
LATC = 0x00;
TRISC = 0xFF;
// Imposto PORTD tutte uscite
LATD = 0x00;
TRISD = 0x00;
// Imposto PORTE tutti ingressi
LATE = 0x00;
TRISE = 0xFF;
RCSTAbits.SPEN=1;
LATC=0;
TRISC=255;
TRISB=0b01000000;
PORTBbits.RB7=1;
Delay10KTCYx(255);
PORTBbits.RB7=0;
Delay10KTCYx(200);
PORTBbits.RB7=1;
// Quarzo 8MHz
// Formato 8 bit
// 1 bit di stop
// Baud rate 9600bit/s
// Interruzioni disattive
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
51);
while (1)
{
unsigned char data=0,i=0;
char Text;
putrsUSART ("AT\r\n"); // AT command test
Delay10KTCYx (250); // response: AT
}
Questo è il mo programma
Si prega Accedi o Crea un account a partecipare alla conversazione.
- davix10
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 41
- Ringraziamenti ricevuti 0
13 Anni 1 Mese fa #8
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Risposta da Gianni al topic Re: PIC E SIM340
Il tuo programma invia di continuo la stringa AT. Non vedo il controllo di "OK" da nessuna parte
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accedi o Crea un account a partecipare alla conversazione.
13 Anni 1 Mese fa #9
da davix10
Risposta da davix10 al topic Re: PIC E SIM340
Se metto questo comando
while(!DataRdyUSART( ));
il programma si blocca perchè non riceve nulla
while(!DataRdyUSART( ));
il programma si blocca perchè non riceve nulla
Si prega Accedi o Crea un account a partecipare alla conversazione.
- davix10
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 41
- Ringraziamenti ricevuti 0
13 Anni 1 Mese fa #10
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Risposta da Gianni al topic Re: PIC E SIM340
Non penso sia il sistema migliore. Non ho usato l'usart sui pic18 ma solo sui pic16, quindi non ho questa funzione che dici ma mi controllo il buffer di ricezione su interrupt. E comunque sia non uso mai funzioni preconfezionate senza capire quello che fanno.
Io ti dico il sistema che uso io, poi fai tu: intercetto l'interrupt su ricezione seriale, memorizzo tutta la roba ricevuta in un buffer. Non appena rilevo il ritorno a capo mi setto un flag da controllare nel main che mi segnala che ho ricevuto qualcosa. Passo quindi a determinare questo qualcosa. Nel tuo caso devi controllare che il primo carattere ricevuto è O e il secondo è K.
In ogni caso non capisco come fai a dire che il programma si blocca. Non vedo accensione di led, non vedo nulla che faccia capire quello che tu affermi.
Io ti dico il sistema che uso io, poi fai tu: intercetto l'interrupt su ricezione seriale, memorizzo tutta la roba ricevuta in un buffer. Non appena rilevo il ritorno a capo mi setto un flag da controllare nel main che mi segnala che ho ricevuto qualcosa. Passo quindi a determinare questo qualcosa. Nel tuo caso devi controllare che il primo carattere ricevuto è O e il secondo è K.
In ogni caso non capisco come fai a dire che il programma si blocca. Non vedo accensione di led, non vedo nulla che faccia capire quello che tu affermi.
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.