Hola a todos, junto con saludar y felicitarlos por el portal comento que soy nuevo en el foro y en los microcontroladores PIC.
Mi situación es que tengo una placa con microcontrolador PIC18F25J10 y cristal a 10Mhz.
He configurado el puerto serial en C usando MCC18, obteniendo solo basura en el hiperterminal de windows.
Les agradezco me puedan ayudar a detectar cual puede ser mi problema en el código.
Saludos cordiales
# include <p18f25j10.h>
#pragma config DEBUG = OFF
#pragma config XINST = ON
#pragma config WDTEN = OFF
#pragma config CP0 = OFF
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config FOSC2 = ON
#pragma config FOSC = HS
#pragma config WDTPS = 1
//#pragma config XINST = OFF
#include <delays.h>
#include <stdlib.h>
#include <adc.h>
#include <usart.h>
#include <stdio.h>
// MAIN
void main(void)
{
unsigned int Canal_0, Depaso =0;
char valor[4];
OpenADC(ADC_FOSC_RC & //Config conversor AD
ADC_8_TAD &
ADC_RIGHT_JUST,
ADC_VREFPLUS_VDD &
ADC_INT_OFF, ADC_CH0);
OpenUSART(USART_TX_INT_OFF & //config USART
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
64 ); // 9600,8,n,1 (((CLOCK_FREQ/BAUD_RATE)/64) - 1)
// cristal a 10Mhz
while(1)
{
SetChanADC(ADC_CH0); //inicia AD
Delay10TCYx(2); //epera iniciacion
ConvertADC(); //convierte
while (BusyADC()){}; //espera conversion
Canal_0=ReadADC(); //lee conversion
#if (Canal_0 != Depaso) // si el valor leido es diferente al anterior
_asm BTG PORTC, 2, 0 _endasm;// cambia de estado un led
#endif
Depaso = Canal_0; //guarda valor leido para la proxima comparación
itoa(Canal_0, valor); // Convierte a string
putsUSART(valor); // transmite valor
while (BusyUSART()){}; // espera a que se desocupe la usart
putrsUSART( "Hola mundo!" ); // transmite un texto.
}