-
20140512 (Usart, adc 신호도 Interrupt로 전환)부산IT학원/스마트컨트롤러 2014. 5. 12. 14:04
58일차
-------------------------
ATMeaga128 Interrupt
-------------------------
--- adc data도 interrupt로 전환
- adc.h 파일에 다음 내용 추가
ADC 인터럽트 함수인 vector_21 선언.
- adc.c 파일에 다음 내용 추가
ADCSRA Reg에 ADIE를 set.
- main.c
인터럽트를 초기화 중에는
글로벌 인터럽트를 끄고
모든 인터럽트들이 초기화가 끝났을 때
글로벌 인터럽트를 켜야한다.
- 프로그래밍 팁.
프로그램을 짤 때 당연히 다른 소스와 연동이 되어야 한다.
그런데 다른 소스에 의존도가 높아지면
자신이 짠 소스를 사용할 때마다 그 다른 소스도 함께
붙여넣어야 하므로
되도록이면 다른 소스를 많이 의존하지 않는게 좋다.
--- Usart data도 인터럽트로 전환
- Usart.h
- Usart.c
UCSR0B Reg에 RXCIE 자리를 set하면 수신 인터럽트 설정.
vector_18 함수에서 다른 소스는 꾸미는 소스이고
Lcd_Data((unsigned char)UDR0); 만 보면 된다.
수신을 받게 되면 ADC인터럽트가 걸리고
수신 받은 자료가 UDR0에 저장되어 있다.
그 값을 LCD로 찍어준다.
- main.c
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140514 (타이머/카운터 Reg) (0) 2014.05.14 20140513 (타이머, 카운터) (0) 2014.05.13 20140509 (Interrupt Reg) (0) 2014.05.09 20140508 (Interrupt, 서적관리 프로그램 작성, open) (0) 2014.05.08 20140507 (ADCL, ADCH, 광센서 실습, 서적관리 프로그램 구현) (0) 2014.05.07