사용자 도구

사이트 도구

English

cublocapp:an41005:index

AN41005 - UIF5K와 연결

(MOACON 사용설명서에 있는 내용입니다.)

UIF-5K 는 LCD 디스플레이와 5 개의 버튼을 갖춘 유저인터페이스용 패널입니다. UIF-5K 는 RS232C 로 통신하도록 되어 있습니다. 모아콘의 RS232C 채널 0 을 통해서 UIF-5K 와 연결하실 수 있습니다.

다음과 같이 UIF-5K 와 MSB 시리즈를 연결하여 주십시오. UIF-5K 에는 9V~24VDC 전원을 별도로 연결해야 합니다.

다음 소스를 실행시키면, UIF-5K 의 LCD 화면에 Comfile 이라는 문자가 표시됩니다. 그리고 버튼을 누르면 해당 버튼의 스캔코드가 LCD 화면에 표시됩니다.

#include "moacon500.h"
void cmain(void)
{
 clcdUartInit(0);           // clcd 를 RS232 0 번채널로 할당
 openCom(0,115200,C8N1);    // RS232 포트 0 번 오픈 (송신은 표시, 수신은 키입력)
 clcdPrint(0,0,"Comfile");  // Comfile 이라는 문자를 LCD 상에 표시합니다.
 while(1){
 if (comLen(0)) {           // UIF5k 의 아무키나 누르면 한바이트가 수신됩니다.
 clcdPrint(0,1,"%03d",comGet(0)); //입력된 키 스캔코드값을 화면에 표시합니다.
 }
 statusLed(1);              // STATUS LED 를 깜박거리게 합니다. (동작유무 확인용)
 delay(100);
 statusLed(0);
 delay(100);
 }
} 

위 소스는 메인루프안에서 항상 키입력이 발생했는지를 검사하는 방식이기 때문에 다소 불편합니다. 다음 소스는 키입력이 발생했을때만 keyInProc( )함수를 수행하도록 한 것입니다. 타이머이벤트를 이용해서 0.5 초마다 키입력 유무를 검사하도록 한 것입니다.

#include "moacon500.h"
u8 keyPushed=0;
void cmain(void)
{
 clcdUartInit(0);        // clcd 를 RS232 0 번채널로 할당
 delay(500);
 openCom(0,115200,C8N1); // RS232 포트 0 번 오픈 (송신은 표시, 수신은 키입력) 
 comPut(0,27);           // beep sound on
 comPut(0,90);
 comPut(0,1);
 clcdPrint(0,0,"Comfile"); // Comfile 이라는 문자를 LCD 상에 표시합니다.
 startTimerEvent(500);    // 타이머 이벤트의 시작
 while(1) {               // 무한루프
 statusLed(1);            // STATUS LED 를 깜박거리게 합니다. (동작유무 확인용)
 delay(100);
 statusLed(0);
 delay(100);
 }
}
// 키입력 있을때만 이곳을 실행
void keyInProc(void)
{
 switch(keyPushed) {
 case 1:
 clcdPrint(0,1,"Key F1 pushed");
 break;
 case 2:
 clcdPrint(0,1,"Key F2 pushed");
 break;
 case 3:
 clcdPrint(0,1,"Key F3 pushed");
 break;
 case 4:
 clcdPrint(0,1,"Key F4 pushed");
 break;
 case 5:
 clcdPrint(0,1,"Key F5 pushed");
 }
}
// 0.5 초마다 이곳으로 옵니다.
void timerEvent(void)
{
 if (comLen(0)) { // UIF5k 의 아무키나 누르면 한바이트가 수신됩니다.
 keyPushed = comGet(0);
 keyInProc();
 }
}
cublocapp/an41005/index.txt · 마지막으로 수정됨: 2017/10/17 17:24 저자 Comfile Technology