해보기는 했어?

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

MEGAWIN

MG82F6D시리즈 GPIO MODE

롬돌이 2022. 12. 8. 11:37
반응형

1. 프로그램 개요

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

부팅 시 LED가 모두 ON 되어 있다가 1초가 지난 뒤에 모두 OFF 된다. 그 뒤 G0èG1èRèG0…의 순으로 200ms마다 순차적으로 LED가 켜진다.

 

2. 회로도

 

 

 

 

3. Code

main routine

 

void main() Main routine 시작
{  
InitSystem(); 시스템 초기화루틴
LED_G_0=0;LED_G_1=0;LED_R=0; LED를 모두 ON 시킴
DelayXms(1000); 1초 딜레이
LED_G_0=1;LED_G_1=1;LED_R=1; LED를 모두 OFF 시킴
while(1) 무한루프, 시스템 동작
{  
LED_G_0=0; Green 0 LED ON
DelayXms(200); 200ms 딜레이
LED_G_0=1; Green 0 LED OFF
LED_G_1=0; Green 1 LED ON
DelayXms(200); 200ms 딜레이
LED_G_1=1; Green 1 LED OFF
LED_R=0; Red LED ON
DelayXms(200); 200ms 딜레이
LED_R=1; Red LED OFF
}  
}  
   

 

 

⑵ 시스템 초기화 루틴

void InitSystem(void)
{
           InitPort();
}
시스템 초기화 루틴
 
포트 초기화루틴

 

⑶ 포트 초기화 루틴 è 회로도를 보면서 각 입출력 핀의 속성을 지정한다.

è (EN)MG82F6D16_Datasheet_V051.PDF13Configurable I/O Ports”를 참조한다.

è (EN)MG82F6D17_Datasheet_V038.PDF14Configurable I/O Ports”를 참조한다.

è (EN)MG82F6D32/64_Datasheet_V102.PDF14Configurable I/O Ports”를 참조한다.

P10, P11 : 아날로그 입력으로 설정한다.

P15Open Drain type으로 설정하고 Pull-Up을 설정해 준다.

P16Open Drain type으로 설정한다.

P17Push-Pull type으로 설정한다.

P22, P24, P26Push-Pull type으로 설정한다.(LED연결)

P20, P31, P33, P34, P35 Quasi-Bidirectional type으로 설정한다.

P61 Open-Drain typ으로 설정한다.

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

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

void InitPort(void)

{

           PORT_SetP1AInputOnly(BIT0|BIT1);     // Set P10,P11 as Analog-Input-Only

è P10, P11을 아날로그 입력으로설정

           PORT_SetP1OpenDrainPu(BIT5);         // Set P15 as Open-Drain with Pull-High

è P15Pull-Up이 연결된 Open-Drain 핀으로 설정

           PORT_SetP1OpenDrain(BIT6);            // Set P16 as Open-Drain

è P16Open-Drain 핀으로 설정

           PORT_SetP1PushPull(BIT7);               // Set P17 as Push-Pull,

è P17 Push-Pull type으로 설정

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

è P22, 24, 26Push-Pull type으로 설정

           PORT_SetP3QuasiBi(BIT0|BIT1|BIT3|BIT4|BIT5);

// Set P30,P31,P33,P34,P35 as Quasi-Bidirectional

è P30, 31, 33, 34, 35는 양방향 핀으로 설정

           PORT_SetP6OpenDrain(BIT0|BIT1);      // Set P60,P61 as Open-Drain

è P61Open-Drain 핀으로 설정

}

 

4. 프로그램 실행

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

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

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

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

 

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

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

 

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

 

 

5. 동작 영상

 https://youtu.be/p-GsFQtzCQ0

 

반응형

'MEGAWIN' 카테고리의 다른 글

MG82F6D Series TIM_T2_Mode4_PWM  (0) 2022.12.13
MG82F6D Series I2C Slave Int  (0) 2022.12.09
MG82F6D Series ADC ROLL  (0) 2022.12.07
MG82F6D Series I2C Master  (0) 2022.12.06
MG82F6D Series UART0 TX RX 485  (0) 2022.12.05