Hola a todos, últimamente solo uso el pic 18F26K22 por tener dos puerto UART.
En mi ultimo proyecto requiero de muchos pines, por eso me cambie al pic 18F45K22, pensé que era similar a su hermano menor... Pero no logro hacer que me funcione este simple ejemplo:
#include <18LF45K22.h>
#device ADC=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOPBADEN //PORTB pins are configured as digital I/O on RESET
#FUSES NOMCLR //Master Clear pin disabled
#use delay(crystal=12MHz)
#use STANDARD_IO( A,B,C,D,E )
#use rs232(baud=9600,bits=8,parity=N,xmit=PIN_C0,rcv=PIN_C1,ERRORS,stream=debug) // Configuración debug (Software)
#use rs232(baud=9600,bits=8,parity=N,xmit=PIN_C6,rcv=PIN_C7,ERRORS,stream=uart1) // Configuración UART1 (Hardware)
#use rs232(baud=9600,bits=8,parity=N,xmit=PIN_D6,rcv=PIN_D7,ERRORS,stream=uart2) // Configuración UART2 (Hardware)
#define LED PIN_C2
#define DELAY 1000
void main(){
setup_timer_0(T0_OFF);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // 174 ms overflow, Setup timer: Reloj interno, preescaler= 8
set_timer1 (0xE4D); // Carga del TMR1 0.165=4/12000000*8(65536-x),x=3661 >> Tiempo de desbordamiento es 0.165 segundos
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_timer_4(T4_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);
setup_ccp3(CCP_OFF);
setup_ccp4(CCP_OFF);
setup_ccp5(CCP_OFF);
setup_dac(DAC_OFF);
setup_adc(ADC_OFF | NO_ANALOGS);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_wdt(WDT_OFF);
while(TRUE)
{
//Example blinking LED program
output_low(LED);
delay_ms(DELAY);
output_high(LED);
delay_ms(DELAY);
//TODO: User Code
}
}
El led parpadea, pero la parte RS232 no funciona, solo funciona el puerto por Software.
¿Alguien sabe que se debe configura?
EDIT:
Era problema de HARDWARE, tenia cruzado mal los pines en el terminal virtual... (estoy "simulando" varios terminales y no vi que NO había que cruzar TX con RX (precisamente porque estoy simulando esos dispositivos.
Aclarado esto, el código SI FUNCIONA.