20140512 (Usart, adc 신호도 Interrupt로 전환)

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


















설정

트랙백

댓글