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