전자공학/마이크로프로세서

2024.2 마이크로프로세서 실험 시험 복기

TSpoons 2024. 12. 27. 16:40

1. reset 시 led_pattern, fnd 값

led_write(led_pattern);
fnd_write_numbers(fnd_num);

2. 터미널에 알파벳 대문자만 입력으로 받아 출력하고, 엔터키 기능 구현

3. m이나 M을 누르게 되면 speaker 동작

 

4. 다시 입력 시 음악 중단


5. SW2를 누르면 led_pattern 0.5초마다 toggle

6. SW2를 다시 누르면 그 상태 그대로 정지

7. SW3를 누르면 fnd 값 2초마다 1씩 증가

8. SW3를 다시 누르면 fnd 값 정지


정확한 시간? -> Timer 사용 (delay X), CTC mode 설정

2초, 0.5초 주기가 정수배인 신호를 생성해야 하므로 같은 Timer에서 생성할 수 있을 것 같다.


try 1) CTC mode로 mode 4 설정, TOP값이 OCRnA이므로 OCRnA, OCRnB를 이용하여 2초, 0.5초 제어

-> 동작 X

 

try 2) CTC mode로 mode 12 설정, TOP값이 ICR기준으로 OCRnA, OCRnB 를 0.5, 2초 제어

- > 0.5초 간격으로 OCR5A , OCR5B 둘 다 작동

 

 

Sol) CTC 모드 (소프트웨어 카운터 사용) : 분주비 극복 가능

 

 

 

 

 

 

 

★ timer 설정 시 주의 사항 ★

 

1. 원하는 주기? prescaler 판단

https://studyhoons.tistory.com/124]

 

AVR 타이머/카운터와 Prescaler(분주비) 완벽 가이드

안녕하세요! 오늘은 AVR 마이크로컨트롤러의 타이머/카운터 설정에서 가장 헷갈리는 부분인 분주비(Prescaler) 선택에 대해 알아보겠습니다. 특히 16MHz에서 주로 사용되는 타이머 설정을 자세히 살

studyhoons.tistory.com

2. compare match register 값 설정 

- f: 원하는 신호의 주파수