F_CPU
2019. 4. 19. 01:44ㆍ임베디드/ATmega128
F_CPU는 지연함수에서 반드시 정의되어야 할 토큰값이다
설정 방법은 2가지로 요약할 수 있다
1. #define F_CPU 보드클럭
2. atmelstudio->alt+F7->toolchain->miscellaneous에서 other flag에 -DF_CPU=보드클럭을 추가할 수 있다
가장 중요한 것은 F_CPU는 사용자 마음대로 정의할 수 있다
지연과 관련된 중요한 부분을 왜 사용자가 마음대로 가능하게 나뒀나?
그 이유는 크로스컴파일 환경에서 컴파일은 PC에서 실행되기 때문에 컴파일하는 기계어가 실행될 장치의 클럭 스피드를 미리 알 수 없다
따라서 미리 정의를 해서 기계어에 알려줘야 한다
만일 보드 클럭과 다르게 설정한다면?
현재 사용하는 보드는 16MHz 외부클럭을 사용한다. 만일 F_CPU = 1MHz로 설정한다면 같은 지연을 설정한다면 훨씬 빠른 속도로 동작할 것이다. 그 이유는 1MHz는 1초에 1000000번 클럭이 뛰게 된다. 따라서 위와 같이 설정한다면 1000000번 클럭이 뛸 때 1초라고 잡기에 실제 클럭보다 16배 빠르게 동작하는 결과가 발생한다
'임베디드 > ATmega128' 카테고리의 다른 글
#ifndef ~ #endif 의미 (0) | 2019.05.01 |
---|---|
AVR 스터디 [2019.05.05] (0) | 2019.04.30 |
AVR 스터디 [2019.04.28] (0) | 2019.04.28 |
AVR 스터디 [2019.04.21] (0) | 2019.04.19 |
AVR 스터디 [2019.04.14] (0) | 2019.04.14 |