Help! problema uart pic 16f1824

12 Anni 2 Mesi fa #1 da nelluzzo
Help! problema uart pic 16f1824 è stato creato da nelluzzo
Ciao a tutti.
Ho un problema con la Usart. Non riesco a farla funzionare con il pic16f1824. All’avvio il programma mi resistuisce strani caratteri. Il led ovviamente resta acceso.

questo è il listato:

main.c:

#define XTAL_FREQ 20MHZ
#include
#include “delay.c”
#include “settings.h”
#include “usart.c” // richiama usart.h ed include la libreria stdio.h e le funzioni putch, getch e getche.

__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CLKOUTEN_OFF & BOREN_OFF & LVP_OFF & CPD_OFF & WRT_OFF & CP_OFF);

void main(void)
{
settings(); // imposto le porte come da settings.h
init_comms(); // set up the USART – settings defined in usart.h
printf(“Ciao”);

while(1)
{
LED0=1; //partito!!!
if(Flags==1 && C0==1)
{
analizza_stringa(); //non ho postato il codice della funzione perchè penso sia inutile ai fini del problema
}
}
}

// INTERRUPT SERVICE ROUTINE
void interrupt isr(void)
{
if(RCIF)
{
input = getch();
if (RCREG==0×44)
{
C1=0,C2=0,C0=1; //azzero la stringa
RxPos=0,Flags=0;
}
if (RxPos==1) C1=RCREG; //ricezione della stringa comandi
if (RxPos==2 && RCREG==0×0d)
{
Flags=1; // terminator
}
RxPos++;
}
}

setting.h:

char C0=0;
char C1=0;
char C2=0;
char RxPos=0;
char Flags=0;

char input=0;
void settings(void);
void interrupt isr(void);

void settings(void)
{
PORTA=0;
PORTC=0;
TRISA=0b00000000;
TRISC=0b00110000; // RC5 e RC4 pin di ricetrasmissione seriale
// RXDTSEL=0; // alternate pin function RC5 = RX / RC4 = TX
// TXCKSEL=0;
ADCON0=0;
ADCON1=0;
RCSTA = 0×90;
TXSTA = 0×26;
ANSELA=0; //ingressi analogici disattivati
ANSELC=0;
INTCON=0b11000000;
APFCON1=0b00001000;
APFCON0=0b01101000;
}

Usart.h:
#ifndef _SERIAL_H_
#define _SERIAL_H_

#define BAUD 9600
#define FOSC 20000000L
#define NINE 0 /* Use 9bit communication? FALSE=8bit */
#define init_comms()\

BRG16=0; \
SPBRGH = 129; \
SPBRGL=0; \
BAUDCON=0×00; \
RCIE=1; \ // interrupt di ricezione su seriale attivato

void putch(unsigned char);
unsigned char getch(void);
unsigned char getche(void);

#endif


Un grazie a chiunque voglia aiutarmi.

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

  • nelluzzo
  • New Member
  • New Member
Di più
12 Anni 2 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Help! problema uart pic 16f1824
Ciao Nelluzzo,
Se ottieni caratteri strani e' un buon segno.
Non ho visto il codice ma questa situazione si ha spesso quando le impostazione del microcontrollore e dell'applicazione in ricezione non sono propriamente impostati allo stesso modo.

Hai avuto modo di fare altre prove in questi giorni?

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 2 Mesi fa #3 da nelluzzo
Risposta da nelluzzo al topic Re: Help! problema uart pic 16f1824
Ciao Mauro,
finalmente ho risolto il problema!
Non avevo disattivato i comparatori e i capacitive sensing control register (che opera sugli stessi pin della usart.

Grazie per aver risposto

Saluti,
Nello

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

  • nelluzzo
  • New Member
  • New Member
Di più
12 Anni 1 Mese fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Help! problema uart pic 16f1824
E' si, il multiplexaggio dei pin e' un'altra cosa che bisogna tenere sempre a mente.
In particolare la configurazione di default delle varie periferiche/moduli presenti su uno stesso pin.
grazie per aver condiviso la soluzione.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 1 Mese fa #5 da paoletto
Risposta da paoletto al topic Re: Help! problema uart pic 16f1824

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • paoletto
  • Avatar di paoletto
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login