UARTを使ってRS232で割り込み受信するにはどの関数を使用しますか?
下記はProject Wizardを使用してプロジェクト作成した例です。
#include <24FJ256GA110.h>
// #FUSES WPRES32 //Watch Dog Timer PreScalar 1:32
#FUSES WPOSTS1 //Watch Dog Timer PostScalar 1:1
#FUSES NOJTAG //JTAG disabled
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES CKSFSM //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES PR //Primary Oscillator
#use delay(clock=20000000)
#use fixed_IO(E_outputs = PIN_E0,PIN_E0,PIN_E1,PIN_E1,PIN_E2,PIN_E2)
#pin_select U1TX = PIN_B0
#pin_select U1RX = PIN_B1
#pin_select U2TX = PIN_B6
#pin_select U2RX = PIN_B7
#pin_select U3TX = PIN_B8
#pin_select U3RX = PIN_B9
#pin_select U4TX = PIN_F4
#pin_select U4RX = PIN_F5
#int_RDA
void RDA_isr(void)
{
}
#int_RDA2
void RDA2_isr(void)
{
}
#int_RDA3
void RDA3_isr(void)
{
}
#int_RDA4
void RDA4_isr(void)
{
}
#use rs232(UART1, baud=9600, parity=N,bits=8,stream=COMA)
#use rs232(UART2, baud=9600, parity=N,bits=8,stream=COMB)
#use rs232(UART3, baud=9600, parity=N,bits=8,stream=COMC)
#use rs232(UART4, baud=9600, parity=N,bits=8,stream=COMD)
void main()
{
char c;
setup_spi( FALSE );
setup_spi2( FALSE );
setup_timer1(TMR_DISABLED|TMR_DIV_BY_1);
enable_interrupts(INT_RDA);
enable_interrupts(INT_RDA2);
enable_interrupts(INT_RDA3);
enable_interrupts(INT_RDA4);
fprintf(COMA, "Online\n\r");
fprintf(COMB, "Online\n\r");
fprintf(COMC, "Online\n\r");
fprintf(COMD, "Online\n\r");
while(TRUE) {
c = fgetc(COMA);
fputc(c, COMA);
fputc(c, COMB);
fputc(c, COMC);
fputc(c, COMD);
}
}