[PIC12F EVM] Soft UART 테스트
소형 MCU에서 UART를 이용하면 디버깅 하기에 편리한 점이 많다. PIC12F683 보드도 Soft UART를 이용하여 시리얼 제어 [LCD Module] 에 디버깅 정보를 표시하는 테스트를 해 보았다.
먼저 Serial.c 코드를 좀 수정하여 기존 코드와 호환 가능하도록 수정한다.
PIC12F683 UART테스트 예제 코드
소형 MCU에서 UART를 이용하면 디버깅 하기에 편리한 점이 많다. PIC12F683 보드도 Soft UART를 이용하여 시리얼 제어 [LCD Module] 에 디버깅 정보를 표시하는 테스트를 해 보았다.
먼저 Serial.c 코드를 좀 수정하여 기존 코드와 호환 가능하도록 수정한다.
// GPIO.0 as UART Rx, and 1 as Tx
#define SOFT_UART_INIT() do{ \
TRISIO = 0x39;\
ANSEL = 0x00;\
GPIO = 0;\
Soft_UART_Init(&GPIO,0, 1, 9600, 0 );\
}while(0)
#define U0_PutByte Soft_UART_Write
void U0_Init(unsigned char baud)
{
SOFT_UART_INIT();
}
#define SOFT_UART_INIT() do{ \
TRISIO = 0x39;\
ANSEL = 0x00;\
GPIO = 0;\
Soft_UART_Init(&GPIO,0, 1, 9600, 0 );\
}while(0)
#define U0_PutByte Soft_UART_Write
void U0_Init(unsigned char baud)
{
SOFT_UART_INIT();
}
PIC12F683 UART테스트 예제 코드
void main()
{
unsigned char buf[6];
SystemInit();
//UART초기화
U0_Init(BAUD_9600);
Delay(1000);
Led1Init();
U0_PutByte(4);
Delay(500);
//0123456789abcdef
U0_PutStr("PIC12 LCD Test");
U0_PutStr("\r\n");
while(1)
{
Led1Toggle();
PutInt(0, count++, buf);
U0_PutStr(buf);
U0_PutStr("\n");
Delay(300);
}
}
{
unsigned char buf[6];
SystemInit();
//UART초기화
U0_Init(BAUD_9600);
Delay(1000);
Led1Init();
U0_PutByte(4);
Delay(500);
//0123456789abcdef
U0_PutStr("PIC12 LCD Test");
U0_PutStr("\r\n");
while(1)
{
Led1Toggle();
PutInt(0, count++, buf);
U0_PutStr(buf);
U0_PutStr("\n");
Delay(300);
}
}
반응형