해보기는 했어?

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

반응형

interrupt 7

PIC IO PORT Test

1. 개요 : I/O 포트를 테스트 해 본다. Port A와 B의 I/O 포트를 테스트 해 본다. Port A는 While 문 속에서 토글 시키고, Port B는 타이머 인터럽트를 발생시켜서 동작시킨다. 2. Main 함수 void main(void) { char i = 0; // 변수 설정 /* 16MHz 설정방법*/ IRCF1 = 1; // Configuration bit 설정 시 PLL을 ON 시켰으므로 IRCF0 = 1; // OSCCON 레지스터의 IRRCF1:0 비트를 11로 // 설정해서 Main Clock을 16MHz로 설정한다. while(ICSS==0); // ICSS가 셋 될 때 까지 기다린다. 0.5% 안정상태까지. /* 16MHz 설정완료*/ GPIO_Initialize(); //..

PIC 2022.12.23

MG82F6D Series I2C Slave Int

1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. MG82F6D 보드는 Slave로 셋팅하고, MG32F02A072AD4 IC를 이용한 보드를 Master로 설정한다. Master에서 Slave로 데이터 어드레스, 16바이트의 데이터를 지속적으로 전송하고, Slave에서는 I2C를 이용해서 수신된 데이터를 UART0으로 전송한다. 2. 회로도 3. Code ⑴ main routine void main() { u8 i; InitSystem(); // 시스템 초기화 SendStr("\nStart"); // UART0으로 프로그램의 시작을 알림 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms..

MEGAWIN 2022.12.09

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"); // 시리..

MEGAWIN 2022.12.02

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
반응형