MEGAWIN

MG82F6D Series GPIO P44P45P47

롬돌이 2022. 11. 14. 22:13
728x90
반응형

1. 프로그램 개요

P22Green 0 LED, P24 Red LED, P26Green 1 LED가 연결되어 있다.

P44, P45OCD 기능이 아닌 GPIO 기능으로 사용하는 것을 테스트 한다.

P47RESET 기능이 아닌 GPIO 기능으로 사용하는 것을 테스트 한다.

P44, P45, P47이 동시에 GPIO로 사용되게 되면, OCD-ICE는 프로그램 다운로더나 시뮬레이터로 사용될 수 없다.

OCD-ICE 기능이 필요하면 U1 다운로더로 다른 프로그램을 라이팅 해야한다. 또는 리셋을 시킨 상태에서 OCD-ICE 다운로더로 프로그램을 라이팅 한다.

 

 

2. 회로도

3. Code

main routine

void main()

{

InitSystem();                                                // 시스템 초기화

LED_G_0=0;LED_G_1=0;LED_R=0;                      // LED ON

DelayXms(2000);                                           // 2초 딜레이

LED_G_0=1;LED_G_1=1;LED_R=1;                      // LED OFF

EnP44P45GPIO();                                          // P44, P45GPIO로 설정

EnP47GPIO();                                               // P47GPIO로 설정

while(1)

{

LED_G_0=0;P44=0;                                      // LED_G_0 ON, P44 Clear(Low, 0)

DelayXms(200);                                          // 200ms 딜레이

LED_G_0=1;P44=1;                                      // LED_G_0 OFF, P44 Set(High, 1)

LED_G_1=0;P45=0;                                      // LED_G_1 ON, P45 Clear(Low, 0)

DelayXms(200);                                          // 200ms 딜레이

LED_G_1=1;P45=1;                                      // LED_G_1 OFF, P45 Set(High, 1)

LED_R=0;P47=0;                                         // LED_R ON, P47 Cler(Low, 0)

DelayXms(200);                                          // 200ms 딜레이

LED_R=1;P47=1;                                         // LED_R OFF, P47 Set(High, 1)

}

}

 

⑵ 시스템 초기화 루틴

/***********************************************************************************

*Function:   void InitSystem(void)

*Description:          Initialize MCU

*Input:  

*Output:    

*************************************************************************************/

void InitSystem(void)

{

          InitPort();                 // 포트 설정

}

- 포트 설정만 수행한다.

 

Port 초기화

/***********************************************************************************

*Function:   void InitPort(void)

*Description:          Initialize IO Port

*Input:  

*Output:    

*************************************************************************************/

void InitPort(void)

{

          PORT_SetP2PushPull(BIT2|BIT4|BIT6);                                            // Set P22,P24,P26 as Push-Pull,For LED.

è P22, P24, P26LED 구동을 위하여 Push-Pull type로 설정한다.

          PORT_SetP4OpenDrainPu(BIT4|BIT5|BIT7);                                      // Set P44,P45,P47 as open-drain with pull-high

è P4, P5, P7Pull-Up을 설정한 Open-Drain type으로 설정한다.

}

*** 사용된 매크로함수는 “API_Macro_MG82FG6D16.H”에서 찾아볼 수 있다.

\Megawin 8051\(EN)MG82F6D16_SampleCode_v1.20\MG82F6D16_GPIO_P44P45P47\code\include

 

4. 프로그램 실행

*** Keil compiler가 인스톨되어 있어야함 ***

해당 Example 폴더를 찾아가 KeilPrj폴더를 Open 한다.

\Megawin 8051\(EN)MG82F6D16_SampleCode_v1.20\ MG82F6D16_GPIO_P44P45P47\KeilPrj

 

해당 폴더의 Keil project 파일을 더블 클릭하여 실행시킨다.(MG82F6D16_DEMO.uvproj)

 

Rebuild 아이콘을 클릭하여 프로젝트를 컴파일 한다.

 

Demo BoardUSB Connector를 연결하여 전원을 인가하고, 전원 스위치를 ON시키고, OCD ICE를 연결한 상태에서 위 이미지의 Start/Stop Debug Session(Ctrl+F5) 버튼을 눌러 컴파일된 프로젝트의 디버그 데이터를 다운로드 시킨다.(컴파일 시 에러가 발생하지 않아야함)

 

 

다운로드 후 Run(F5) 버튼을 클릭하면 프로그램이 동작한다.

 

5. 동작 영상

 

728x90
반응형