해보기는 했어?

오늘 안됐다고 포기하지 말고 용기내서 내일 다시 해 보자.

MEGAWIN

MG82F6D Series GPIO P44P45P47

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

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. 동작 영상

 

반응형

'MEGAWIN' 카테고리의 다른 글

MG82F6D Series WDT Reset  (0) 2022.11.17
MG82F6D Series WDT Int.  (0) 2022.11.17
MG82F6D Series CLK ILRCO P60OC  (0) 2022.11.11
MG82F6D Series CLK xtal  (0) 2022.11.10
MG82F6D Series GPIO P6  (0) 2022.11.09