해보기는 했어?

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

반응형

분류 전체보기 133

MG82F6D Series GPIO P44P45P47

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. P44, P45를 OCD 기능이 아닌 GPIO 기능으로 사용하는 것을 테스트 한다. P47은 RESET 기능이 아닌 GPIO 기능으로 사용하는 것을 테스트 한다. P44, P45, P47이 동시에 GPIO로 사용되게 되면, OCD-ICE는 프로그램 다운로더나 시뮬레이터로 사용될 수 없다. OCD-ICE 기능이 필요하면 U1 다운로더로 다른 프로그램을 라이팅 해야한다. 또는 리셋을 시킨 상태에서 OCD-ICE 다운로더로 프로그램을 라이팅 한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 LED_G_0=0..

MEGAWIN 2022.11.14

MG82F6D Series CLK ILRCO P60OC

MG82F6D Series CLK ILRCO P60OC 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 내부 클럭인 ILRCO의 동작을 확인해 본다. 클럭을 설정하고 P60으로 (MCK/4)의 주파수로 확인해 본다. ILRCO가 32kHz이므로 P60에는 8kHz 구형파가 출력해야한다. IHRCO와 ILRCO 두 가지를 확인해 본다. IHRCO는 12MHz, ILRCO는 32kHz이다. 2. 회로도 /* LED 부분 회로도 추가 */ 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화, Clock 초기화 부분을 확인해야함 LED_G_0=0;LED_G_1=0;LED_R=0..

MEGAWIN 2022.11.11

MG82F6D Series CLK xtal

MG82F6D Series CLK xtal 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 외부클럭을 이용하는 방법을 확인한다. P60, P61에 8MHz X-TAL을 연결하고 시스템을 구동하는 방법을 확인한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화, Clock 초기화 부분을 확인해야함 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; //..

MEGAWIN 2022.11.10

MG82F6D Series GPIO P6

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. P60, P60을 High 출력을 유지하다가 500ms 마다 100us진폭으로 Low 출력을 만든다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 LED_G_0=0;LED_R=0;LED_G_1=0; // LED 전체 ON DelayXms(1000); // 1초 딜레이 LED_G_0=1;LED_R=1;LED_G_1=1; // LED 전체 OFF while(1) { LED_R=!LED_R; // RED LED Toggle DelayXms(500); // Delay 500ms P60=0; // P60 clea..

MEGAWIN 2022.11.09

MG82F6D Series ADC with Interrupt - 2

⑵ 시스템 초기화 루틴 void InitSystem(void) { InitPort(); InitClock(); InitTimer0(); InitUart0_T1(); InitADC(); InitInterrupt(); } // 시스템 초기화 루틴 // 포트 초기화루틴 // 클럭 초기화 루틴 // 타이머 0 초기화 // Timer 1 Overflow를 이용한 UART0 초기화 // ADC 초기화 // 인터럽트 초기화 ADC를 인터럽트로 받아들이기 위해서 ADC와 인터럽트를 초기화 시키는 루틴이 추가되었음 ADC 결과 값을 시리얼로 전송하기 위하여 UART0을 초기화하는 루틴이 추가되었음. UART0은 Timer 1의 Overflow 기능을 이용하여 Baud Rate를 결정하는 방법을 사용하였음 Megawin ..

MEGAWIN 2022.11.08

MG82F6D Series ADC with Interrupt - 1

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. P10에 연결된 회로의 Analog값을 측정하기 위하여 Interrupt 방식의 ADC를 구현한다. 측정된 값은 64개를 취득하면 시리얼로 그 데이터를 전송한다. 시리얼 통신은 Timer 1의 Overflow를 이용한 방식으로 설정하고, 그 BaudRtae는 9600이다. Timer 0을 이용해서 1ms Interrupt를 생성하고, 200ms 타이머를 생성한다. 200ms 마다 Red Led의 출력이 반전이 되도록 하여 시스템이 동작 중 임을 표시한다. 2. 회로도 /* LED 부분 회로도 추가 */ 3. Code ⑴ main routine void main() { u8 i; I..

MEGAWIN 2022.11.08

마이크로프로세서로 KEY 입력 받는법

MPU의 키 입력 방법에는 여러가지가 있다. 개발자들 마다 저마다의 노하우와 설계 방법에 따라 많은 것들이 있다. 나는 시스템이라고 하기에는 좀 뭐...한 작은 제품들을 개발한다. 그래서 버튼이 크게 많이 필요한 것은 아니다. 보통 4개에서 16개 정도의 키를 사용한다. 수량이 적을때에는 포트에 직접 연결하고, 수량이 많을때에는 매트릭스 방법이나 ADC를 이용한다. 그럼 내가 알고 있는 내용을 한 번 적어볼까?? 1. 포트에 직접 연결 포트 하나당 하나의 스위치를 연결한다. 당연히 풀업이나 풀다운이 필요하다. 그래야 노이즈에 좀 강해진다. 포트 스캔을 하거나 인터럽트를 이용한다. 소프트웨어로 노이즈를 처리한다. 2. 매트릭스 방법 포트 수에 비해 사용할 수 있는 키의 수가 많아진다. 회로를 쬐끔 복잡하게..

임베디드 2022.11.05

마이크로프로세서 제대로 공부하기

제목이 너무 거창한가??? 1999년 지도교수님께서 "실험실에 자리 만들어 뒀으니 들어와라."는 말씀에 그동안 공부해 오던 자격증 시험을 뒤로 하고 실험실로 들어갔다. 처음 접한 것은 8051이였다. 요즘에야 51시리즈가 내부 롬을 많이 가지고 있고 플래시 타입으로 사용이 되고, ICSP 기능이 있어 좋아졌다. 그러나 그때는 EPROM을 사용하고 있었고, 간혹가다가 EEPROM을 구하게 되면 그걸 사용했다. 물론 프로그래밍하고 테스트 하는데에는 시간이 좀 많이 걸렸었다. 모니터 프로그램이란 것을 그때 사용했었고, 그것을 이해하고자 시간을 많이 투자 했었다. 지금 돌이켜 보건데 순서가 있는듯 싶다. 1. 용어 익히기 ROM, RAM, PORT, Open-Drain, Pull-Up, Pull-Down, Ad..

임베디드 2022.11.05
반응형