porta seriale e PIC

Inviato:
26 apr 2012, 11:46
da mattia281193
ragazzi è da poco che lavoro in c .
voglio visualizzare su PC il valore a 10 bit o anche in esadecimale, basta che si visualizza un valore che cambia in base alla lettura dell'ADC su hyper terminal.
il listato che ho pensato è questo
- Codice: Seleziona tutto
unsigned int dato;
void main() {
ADCON1 = 0x80; // Conf. Ingr. Analog.
TRISA = 0xFF; // PORTA = input
TRISB = 0x00;
PORTB = 0x00;
Uart1_Init(9600);
while(1) {
dato = Adc_Read(0);
Uart1_Write(dato);
Delay_ms(20);
};
}
il PIC è un 16f876a che lavora a 8MHZ

funzionerà???

Re: porta seriale e PIC

Inviato:
26 apr 2012, 11:50
da Paolino
Sì, dovrebbe funzionare. Tieni però conto che con la funzione:
- Codice: Seleziona tutto
Uart1_Write(dato);
Invii un dato numerico, non una stringa. Se vuoi inviare una stringa, dovrai effettuare una conversione del dato da int a stringa e inviarlo come caratteri.
Ciao.
Paolo.
P.S. Stai usando MikroC PRO?
Re: porta seriale e PIC

Inviato:
26 apr 2012, 11:57
da mattia281193
gentilmente potresti farmi un usempio?

Re: porta seriale e PIC

Inviato:
26 apr 2012, 12:08
da TardoFreak
In
QUESTO ARTICOLO ne trovi molti di esempi.
Re: porta seriale e PIC

Inviato:
26 apr 2012, 12:23
da Paolino
Se stai usando MikroC PRO, dovrai spuntare la libreria "Conversion".
Un codice che dovrebbe funzionare è il seguente:
- Codice: Seleziona tutto
void main(void)
{
int dato;
char stringa[7];
ADCON1 = 0x80; // Conf. Ingr. Analog.
TRISA = 0xFF; // PORTA = input
TRISB = 0x00;
PORTB = 0x00;
Uart1_Init(9600);
while(1)
{
dato = Adc_Read(0);
IntToStr(dato, stringa);
UART1_Write_Text(stringa);
Delay_ms(20);
};
}
Ciao.
Paolo.
Re: porta seriale e PIC

Inviato:
26 apr 2012, 13:39
da mattia281193
grazie

ora ho capito è abbastanza intuitivo ...
- Codice: Seleziona tutto
stringa[7];
il 7 cosa rappresenta?
Re: porta seriale e PIC

Inviato:
26 apr 2012, 13:46
da Paolino
Il 7 indica la dimensione della stringa, in numero di caratteri. Dovendo convertire un int, con il segno, essendo int un tipo a 16 bit, la dimensione massima del numero rappresentabile va da -32768 A +32767. Se per ipotesi consideriamo il numero -25657 e contiamo da quanti caratteri è composto, vedrai che sono 6. Il settimo carattere è il "fine stringa", in C noto anche come NULL e vale '\0'.
Ecco spiegato il numero 7.
Se devi convertire variabili di tipo diverso la dimensione della stringa sarà inferiore o superiore.
Ciao.
Paolo.
Re: porta seriale e PIC

Inviato:
28 apr 2012, 14:29
da mattia281193
c'è un problema...momentaneamente sto utilizzando l'UART tool del PIC kit 2e quando visualizzo i dati in rx questi non cambiano scorre sempre lo stesso valore, anche se l'adc legge un valore differente
