부산IT학원/스마트컨트롤러
20140512 (Usart, adc 신호도 Interrupt로 전환)
EHOzlO
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