본문 바로가기

분류 전체보기154

MG82F6D Series I2C Master 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 4096바이트 용량의 EEPROM(24C32)을 읽고/쓰는 테스트를 진행한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 SendStr("\nStart"); // 시리얼로 “Start” 문자 송신 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms(1000); // 1초 딜레이 LED_G_0=1;LED_G_1=1;LED_R=1; // LED ALL OFF rand = 0x80; // 랜덤 변수 초기화 0x80 TWI0TestAddr.W=0x0000; // TWI.. 2022. 12. 6.
MG82F6D Series UART0 TX RX 485 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. UART0을 송신은 폴링 방식으로 사용하고, 수신은 인터럽트를 사용하도록 한다. P17을 RS485의 DE/RE를 선택하는 핀으로 사용한다. 수신 시에는 송신하는 쪽에서 라인을 컨트롤하니까 상관은 없으나 송신 시에는 DR/RE 핀을 제어 해야 한다. 송신 전에 DE를 선택해 주고 일정 시간 뒤에 라인에 데이터를 전송하고, 전송이 끝나면 잠시 기다린 뒤에 DE신호를 RE신호로 바꾼다. 중간에 딜레이가 없으면 데이터가 깨지므로 주의해야한다. 2. 회로도 3. Code ⑴ main routine void main() { u8 i; InitSystem(); // 시스템 초기화 Uart0R.. 2022. 12. 5.
MG82F6D Series UART0 TX RX INT 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. UART0을 인터럽트 방식으로 송/수신하는 것을 테스트 한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 Uart0RxIn=0; // 변수 초기화 Uart0RxOut=0; Uart0TxIn=0; Uart0TxOut=0; bUart0TxFlag=0; LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms(1000); // 1초 딜레이 LED_G_0=1;LED_G_1=1;LED_R=1; // LED ALL OFF Uart0SendStr("Start!\n"); // 시리.. 2022. 12. 2.
MG82F6D Series RTC Timer 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. IC 내부에 내장된 RTC를 테스트 한다. 2. 회로도 3. Code ⑴ main routine void main() { InitSystem(); // 시스템 초기화 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms(1000); // 1초 딜레이 LED_G_0=1;LED_G_1=1;LED_R=1; // LED ALL OFF while(1) { DelayXms(100); // 100ms 딜레이 LED_G_0=!LED_G_0; // LED_G_0 토글 } } ⑵ 시스템 초기화 루틴 /*********************************.. 2022. 12. 1.
MG82F6D PCA PWM 16bit 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. SYSTEM Clock를 24MHz, CPU Clock를 24MHz로 사용하고, PCA 클럭은 96MHz를 사용한다. PCA 출력은 CH0(P22), CH1(P33), CH2(P24), CH3(P34), CH4(P26), CH5(P35)로 설정한다. 2개씩 묶어 3쌍을 비교 해 본다. PWM 주파수는 96MHz/1000 = 96kHz로 설정한다. P10은 입력으로 사용되며 PWM 출력을 제어한다. 1이면 Enable, 0이면 Disable 이다. 2. 회로도 3. Code ⑴ main routine void main() { u8 cnt,inx; // 변수 선언 bit bOutFla.. 2022. 11. 30.
MG82F6D Series PCA Timer 16bit 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 외부 인터럽트 입력에 의해 Power Down Mode에서 시스템이 깨어나는 것을 보여준다. INT0, INT1, INT2가 사용되며, 시스템이 깨어 났을 때 어느 인터럽트가 입력되었는지를 LED에 연결해서 확인할 수 있도록 해 준다. PCA0 타이머는 지속적으로 동작을 하고 있고, 모듈 0, 모듈 1에서 비교 값으로 설정된 것과 동일한 타이머 값이 되면 해당 모듈의 인터럽트가 발생하도록 한다. 모듈 0은 2000us, 모듈 1은 4000us 마다 인터럽트가 발생하게 되어 있고, 인터럽트 때 마다 할당된 LED가 토글된다. 2. 회로도 3. Code ⑴ main routine vo.. 2022. 11. 29.