Buenos dias, estoy intentando leer los datos del puerto serie de un ordenador y mostrarlos en el puerto B, x medio de 8 leds.
Uso un dspic30f4013 y CCS compliler.
He pensado leer los datos por medio de la UART y usar una interrupcion interna x ejemplo el timer1 para que lea los datos del puerto serie del pc cada 500ms y los muestre en el puertoB del dspic.
Con la ayuda del wizard y algunos ejemplos que he encontrado el codigo me va quedando asi. Ya configuro la interrupcion interna a 500ms, y dentro de la interrupcion pongo que lea los datos, aqui comienzan mis dudas porque lo copie de un ejemplo
ch = get_c(); send_c(ch+1); send_byte(0x0D); send_byte(0x0A);
PORTB++;
Delay10KTCYx(5);
quiero que lea el puerto serial y envie ese dato al Puero B del micro, mi duda es como el puerto b tiene 12 pines, como muestro 8 bits en el puerto, ya que voy a conectar 8 leds al puerto para visualizar lo que reciba. deberia crear una variable que tenga 8 pines del puerto B o algo asi si es asi como deberia hacerlo?
#include <30F4013.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES CKSFSM //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES NOBROWNOUT //No brownout reset
#device ICSP=1
#use delay(clock=32MHz,crystal=8MHz)
#use rs232(UART1, baud=9600, RTS=PIN_A11, stream=UART_PORT1)
#INT_TIMER1
void timer1_isr(void)
{
ch = get_c(); send_c(ch+1); send_byte(0x0D); send_byte(0x0A);
PORTB++;
Delay10KTCYx(5);
}
void main()
{
set_tris_b(0);
//! set_port_b(0);
setup_timer1(TMR_INTERNAL | TMR_DIV_BY_256, 15624);
enable_interrupts(INT_TIMER1);
enable_interrupts(INTR_GLOBAL);
while(TRUE);
}
Estoy muy perdido soy muy novato en esto agradezco cualquier ayuda.