usart c18 step by step con compilatore xc8

11 Anni 2 Mesi fa #1 da alpignolo
usart c18 step by step con compilatore xc8 è stato creato da alpignolo
Ciao a tutti!
Sto compilando gli esempi del C18 step by step con mplabx e xc8. Sono arrivato all'esempio sull usart, il programma viene compilato senza errori ma quando lo eseguo sulla freedom 2 sul terminale ricevo caratteri strani.
Ho notato che nel file PIC18F4550_config il postscaler è settato così : #pragma config CPUDIV =OSC3_PLL4 , dovrebbe dividere la frequenza per 3.
Se lo imposto così: #pragma config CPUDIV=OSC1_PLL2 dovrebbe dividere per 1, compilando con questa configurazione la comunicazione col terminale funziona correttamente ma ottengo caratteri srtani sul display.
Ho pensato quindi a un problema di ritardi dei comandi inviati al display, ho sostituito la libreria delay laurtec con quella microchip e tutto funziona correttamente (sia il display che la comunicazione con il terminale).

Concludendo, volevo sapere se è corretto impostare il registro CPUDIV=OSC1_PLL2 e se la libreria delay effettivamente non è precisa . Inoltre sempre nel file PIC18F4550_config c'è settato #pragma config PLLDIV=1 ma nelle note sembra che con un quarzo da 20Mhz vada impostato a 5.

Allego una copia del file funzionante. Grazie Andrea
Allegati:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alpignolo
  • Junior Member
  • Junior Member
Di più
11 Anni 2 Mesi fa #2 da StefA
Risposta da StefA al topic usart c18 step by step con compilatore xc8
La libreria a me ha sempre funzionato, in molteplici e diverse situazioni, escuderei problemi da quel lato.

Inoltre sempre nel file PIC18F4550_config c'è settato #pragma config PLLDIV=1 ma nelle note sembra che con un quarzo da 20Mhz vada impostato a 5.


di quali note parli?

I file di libreria da includere li hai aggiunti al progetto? perché nel main non ci sono tutti..

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 2 Mesi fa - 11 Anni 2 Mesi fa #3 da alpignolo
Risposta da alpignolo al topic usart c18 step by step con compilatore xc8
Ciao Ste, intendo le note che ci sono nel file PIC18F4550_config, c'è scritto così:

//PLL Prescaler Selection bits
//1 No prescale (4 MHz oscillator input drives PLL directly)
//5 Divide by 5 (20 MHz oscillator input)
//12 Divide by 12 (48 MHz oscillator input)
//2 Divide by 2 (8 MHz oscillator input)
//6 Divide by 6 (24 MHz oscillator input)
//3 Divide by 3 (12 MHz oscillator input)
//10 Divide by 10 (40 MHz oscillator input)
//4 Divide by 4 (16 MHz oscillator input)
#pragma config PLLDIV = 1


Nel main del programma che mi funziona ho incluso:

#include <xc.h>
#include "PIC18F4550_232.h" // impostato #pragma config CPUDIV=OSC1_PLL2
#define _XTAL_FREQ 20000000
#include <usart.h>
#define LCD_DEFAULT
#include "LCD_44780delay.c" // uso delay microchip


PIC18F4550_232.h è il file PIC18F4550_config modificato con #pragma config CPUDIV=OSC1_PLL2, delay.c/h li ho tolti perchè ho usato i delay che sono presenti in xc.h. LCD_44780delay.c è il file LCD_44780 dove ho sostituito le funzioni delay.
Posto anche questi due file. Credo dovrebbe esserci tutto anche perchè il programma così modificato viene compilato senza errori e funziona correttamente.
Grazie ciao Andrea
Allegati:
Ultima Modifica 11 Anni 2 Mesi fa da alpignolo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alpignolo
  • Junior Member
  • Junior Member
Di più
11 Anni 2 Mesi fa #4 da alpignolo
Risposta da alpignolo al topic usart c18 step by step con compilatore xc8
Mi sono accorto che nei file che ho postato mancano delle modifiche perchè non sono l'ultima versione che ho fatto. Per evitare confusione posto due cartelle con i programmi compilati, una con il programma funzionante dopo le modifiche e una con il programma che non mi funziona il quale utilizza la libreria laurtec 3.1 originale. i file di libreria si trovano nella sottocartella librerie.
Allegati:
Ringraziano per il messaggio: Pinna

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alpignolo
  • Junior Member
  • Junior Member
Di più
11 Anni 2 Mesi fa #5 da Pinna
Risposta da Pinna al topic usart c18 step by step con compilatore xc8
Ciao Andrea, confermo quello che dici, almeno per quanto riguarda #pragma config CPUDIV=OSC1_PLL2. Non riuscivo a far funzionare l'usart con xc8 ma, dopo la tua osservazione, va che è una bellezza. Non solo, ho risolto un problema che mi assillava da molte settimane e per questo, con la mia benedizione, hai il mio grazie

Marcello

Chi vola vale, chi vale vola, chi non vola è un vile

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login