割り込み 4 関数から文字列を取得するのは少し難しいです。しかし、単一の文字を取得しようとしてLCD 2 * 16に表示すると、うまく機能します。しかし、LCD に表示するために "dot[i]" 変数から文字列を取得しようとすると、うまくいきません。
この私のコード:
void Init_SerialT2()
{
//timer 2 Osilator 12 MHz
SetTRCLK(1,1); /*using for send and receive function*/
SM0 = 0;
SM1 = 1; /* register serial control mode1 = 8 bit UART*/
TH2 = 0x5;
TL2 = 0x124;
//TH2=0x03;
//TL2=0x03;
RCAP2H = 0xff; /*RCAP2 0xffd9 baut rate 9600 at F osilator 12Mhz*/
RCAP2L = 0xd9;
C_T2 = 0; /* using As timer function*/
REN = 1; /* Receive enable*/
TR2 = 1; /* Timer 2 start*/
}
volatile unsigned char RX_IN_CHR_UART[16]; // global var
void Interrupt_TerimaChar() interrupt 4
{
volatile unsigned int i =0;
volatile unsigned char ch;
volatile unsigned char *dor;
TI=0;
if(RI)
{
ch = SBUF;
RI =0;
for(i=0;i<RX_IN_CHR_UART[i];i++)
{
RX_IN_CHR_UART[i] = ch; // save character int array
dor[i]= RX_IN_CHR_UART[i];
}
LCD_command(0x86);
//LCD_senddata(ch); // test to get char it's works
LCD_sendstring(dor);
ES =1;
}
}
Keil v4を使用するコンパイラの場合