- Messaggi: 1010
- Ringraziamenti ricevuti 107
Problemi 18f2550 rs232 C18
11 Anni 8 Mesi fa #1
da Alex68
Problemi 18f2550 rs232 C18 è stato creato da Alex68
ciao a tutti
sto cercando di migrare dai pic 16f ai 18fxxxx in particolare al 18F2550. sto leggendo il tutorial C18 ste by Step veramente utile. Dopo aver acceso l classico led sto provando ad usare la seriale del pic ma non riesco. Praticamente per non commettere errori sto utilizzando Hyper terminalin e non un software da me realizzato.Il problema è il seguente: ho caricato il progremma nel pic con PICkit 2 e quando do tenzione al circuito su Hyper terminal al posto di visualizzare la scritta "ciao", mi compaiono dei simboli strani. Il rogramma, per verificare che non sia bloccato accende e spegne anche un led. Come IDE utilizzo MPLAB e C18.
Di seguito il breve programma che ho scritto.
#include <p18f2550.h>
#include <usart.h>
#include <delays.h>
#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
//FOSC= HS Impostato per lavorare ad alta frequenza
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici
void main (void){
// Variabile per salvare il dato di ritorno
unsigned char data = 0X41; //LATTERA A
// Imposto PORTA tutte uscite
LATA = 0x00;
TRISA = 0x00;
// Imposto PORTB tutti ingressi
LATB = 0x00;
TRISB = 0xFF;
// Imposto PORTC tutti ingressi
LATC = 0x00;
TRISC = 0b10111101;
// Imposto PORTD tutte uscite
//LATD = 0x00;
//TRISD = 0x00;
// Imposto PORTE tutti ingressi
//LATE = 0x00;
//TRISE = 0xFF;
//OpenLCD (20);
//BacklightLCD (TURN_ON);
// Configura l'USART
// 8 bit
// 9600 bit/s
// 1 bit stop
// 0 bit parità
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
64 );
LATA=0x00;
while (1) {
// Invio la stringa al terminale
putrsUSART ("ciao");
WriteUSART(data);
LATA=0xFF;
Delay1KTCYx(150);
LATA=0x00;
Delay1KTCYx(150);
}
// Chiudo l'USART
CloseUSART();
}
Dov'è che cometto errori ??
Grazie in anticipo
sto cercando di migrare dai pic 16f ai 18fxxxx in particolare al 18F2550. sto leggendo il tutorial C18 ste by Step veramente utile. Dopo aver acceso l classico led sto provando ad usare la seriale del pic ma non riesco. Praticamente per non commettere errori sto utilizzando Hyper terminalin e non un software da me realizzato.Il problema è il seguente: ho caricato il progremma nel pic con PICkit 2 e quando do tenzione al circuito su Hyper terminal al posto di visualizzare la scritta "ciao", mi compaiono dei simboli strani. Il rogramma, per verificare che non sia bloccato accende e spegne anche un led. Come IDE utilizzo MPLAB e C18.
Di seguito il breve programma che ho scritto.
#include <p18f2550.h>
#include <usart.h>
#include <delays.h>
#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
//FOSC= HS Impostato per lavorare ad alta frequenza
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici
void main (void){
// Variabile per salvare il dato di ritorno
unsigned char data = 0X41; //LATTERA A
// Imposto PORTA tutte uscite
LATA = 0x00;
TRISA = 0x00;
// Imposto PORTB tutti ingressi
LATB = 0x00;
TRISB = 0xFF;
// Imposto PORTC tutti ingressi
LATC = 0x00;
TRISC = 0b10111101;
// Imposto PORTD tutte uscite
//LATD = 0x00;
//TRISD = 0x00;
// Imposto PORTE tutti ingressi
//LATE = 0x00;
//TRISE = 0xFF;
//OpenLCD (20);
//BacklightLCD (TURN_ON);
// Configura l'USART
// 8 bit
// 9600 bit/s
// 1 bit stop
// 0 bit parità
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
64 );
LATA=0x00;
while (1) {
// Invio la stringa al terminale
putrsUSART ("ciao");
WriteUSART(data);
LATA=0xFF;
Delay1KTCYx(150);
LATA=0x00;
Delay1KTCYx(150);
}
// Chiudo l'USART
CloseUSART();
}
Dov'è che cometto errori ??
Grazie in anticipo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Alex68
- Autore della discussione
- Visitatori
11 Anni 8 Mesi fa #2
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Problemi 18f2550 rs232 C18
Ciao, in base alla tabella 12 : Valori del registro SPBRG (pag 239 dell'ultima edizione del corso), usando un quarzo da 20MHz, con BRGH impostato ad 1 (HIGH) e con un baudrate di 9600, dovresti sostituire il numero 64 con 129
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
11 Anni 8 Mesi fa #3
da Alex68
Risposta da Alex68 al topic Problemi 18f2550 rs232 C18
Ciao, hai perfettamente ragione, ma nelle varie prove ho anche provato a varare la velocità di trasmissione a 19200 e nei commenti mi sono dimenticato di cambiare il valore. Attualmente mentre sto scrivendo il baudrate è impostato a 19200 con BRGH impostato a 1, ma continuo a ricevere strani caratteri al posto della scritta "ciao". Ho anche scaricato, come suggerto sul tutorial rs232 il programma simile a Hypertermila, ma continua a non funzionare.
Aiuto
Aiuto
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Alex68
- Autore della discussione
- Visitatori
11 Anni 8 Mesi fa #4
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Problemi 18f2550 rs232 C18
ora non mi ricordo esattamente, però mi sembra che il 2550 abbia 28 pin con solo PORTA, B e C. Se hai collegato anche il display lcd mi chiedo: a quale porta l'hai collegato? Inoltre, cosa molto importante: carichi il file hex direttamente sul pic con il programmatore oppure rifai il building e poi riprogrammi? Te lo dico perchè la seconda strada è quella giusta, a giudicare da questo link:
www.laurtec.it/forum/22-freedom-ii/304-p...-comunicazione-rs232
www.laurtec.it/forum/22-freedom-ii/304-p...-comunicazione-rs232
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
11 Anni 8 Mesi fa #5
da Alex68
Risposta da Alex68 al topic Problemi 18f2550 rs232 C18
Ciao Pinna,
ti ringrazio per la quadra. Effettivamente come si evince dal post che mi hai postato programmando il pic direttamente da progetto tutto funziona, così come funziona porgrammado da PICKIT2 dividendo per 4 il baudrate si Hyerterminal. ( ho provato entrabi i sistemi )
Il fatto che caricando il file hex sul pic2 non mi compare il messaggio evidenziato da Mauro Laurenti "Some configuration words not in hex file. Ensure default values above right are acceptable.", ma mi dice "hex file successfully imported".
Dato che è impensabile che tutti posseggano il PICKIT2 o"tool di sviluppo compatibili Microchip" e che si debba aggirare il sistema di programmare i pic programmando direttamente da progetto e che comunque se dovessi dare il file hex a qualcun' altro il programma non funzinerebbe, pongo a Mauro Laurenti ( e a chiunque sappia dare una risposta ) il seguente quesito:
Quali sono i "nuovi pragma relative alle impostazioni di configurazione" per poter programmare direttamente da PICKT2 in modo da ottenere un hex funzionante? Poichè ritengo importante che sia possibile distribuire il file hex a chiunque senza dover fornire l'intero progetto e ricompilare/programmare direttamente da MPLAB
Queste problematiche sono state evidenziate anche con altri progetti (pwm,adc, i2c, lcd, etc..) ?
Grazie
ti ringrazio per la quadra. Effettivamente come si evince dal post che mi hai postato programmando il pic direttamente da progetto tutto funziona, così come funziona porgrammado da PICKIT2 dividendo per 4 il baudrate si Hyerterminal. ( ho provato entrabi i sistemi )
Il fatto che caricando il file hex sul pic2 non mi compare il messaggio evidenziato da Mauro Laurenti "Some configuration words not in hex file. Ensure default values above right are acceptable.", ma mi dice "hex file successfully imported".
Dato che è impensabile che tutti posseggano il PICKIT2 o"tool di sviluppo compatibili Microchip" e che si debba aggirare il sistema di programmare i pic programmando direttamente da progetto e che comunque se dovessi dare il file hex a qualcun' altro il programma non funzinerebbe, pongo a Mauro Laurenti ( e a chiunque sappia dare una risposta ) il seguente quesito:
Quali sono i "nuovi pragma relative alle impostazioni di configurazione" per poter programmare direttamente da PICKT2 in modo da ottenere un hex funzionante? Poichè ritengo importante che sia possibile distribuire il file hex a chiunque senza dover fornire l'intero progetto e ricompilare/programmare direttamente da MPLAB
Queste problematiche sono state evidenziate anche con altri progetti (pwm,adc, i2c, lcd, etc..) ?
Grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Alex68
- Autore della discussione
- Visitatori
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.