Fogeaters, Light The World.

15

2016-Jan

AVR delay 함수 (_delay_ms, _delay_us)

작성자: title: MoonBlonix IP ADRESS: *.148.87.98 조회 수: 1639

delay.h 를 포함시켜 사용할 수 있는 _delay_ms, _delay_us 함수는 타이머를 이용하지 않고 단순히 cpu 클럭만을 버린다고 한다.

따라서 사용하는 타이머랑 꼬일까 고민하지 않아도 된다.


사용을 위해서 필요한 헤더파일은 <util/delay.h> 다.

근데 컴파일해보면 F_CPU가 정의되지 않았다고 나올거다.

이 헤더파일을 인클루드하기 이전에 사용하는 CPU의 클럭에 대한 정보를 define 해주면 된다.



#define F_CPU 1000000UL // 1 MHz
#include <util/delay.h>



뭐 대충 이런식으로.

ATMega128A 라면 16MHz 니까 16000000UL 로 해주면 된다.


사용하는 함수는

void _delay_ms(double __ms)



얘는 적어준 밀리세컨드만큼 딜레이 시킨다. 100 적으면 0.1 초인거.

근데 막 1000 적는다고 1초는 못쉬는게, 한번에 최대 262.14 ms 밖에 못 쉰다고 한다.

그러니까 여러번 쉬어야 하면 100ms 씩 여러번 쉬게 하는 식으로 구현해야 한다.


void _delay_us(double __us)


얘는 마이크로 세컨드만큼 딜레이 시킨다. 1000 us 가 1ms 임.

한번에 최대 768us 까지 쉴 수 있다.


참고자료 : http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html

profile
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [Web] 클라우드 IDE + 2 title: MoonBlonix 2017-06-25 15121
32 [AVR] HC_SR04 초음파센서 사용 file title: MoonBlonix 2016-02-13 1667
31 [AVR] 피에조 부저 활용 file + 1 title: MoonBlonix 2016-02-12 1954
30 칼만필터(Kalman Filter) + 2 title: MoonBlonix 2016-02-11 4375
29 low pass filter, high pass filter (저역통과필터, 고역통과필터) file title: MoonBlonix 2016-02-11 1454
28 [AVR] 루프 실행시간 측정 (아두이노의 Millis(), Micros() 분석) title: MoonBlonix 2016-02-09 1454
27 상보필터(Complementary Filter) file title: MoonBlonix 2016-02-09 1737
26 가속도, 자이로 센서에 대해 title: MoonBlonix 2016-02-09 1570
25 [AVR] UART 통신 file title: MoonBlonix 2016-02-07 1607
24 C++ 과 C 를 같은 프로젝트에서 사용하기 title: MoonBlonix 2016-02-07 1504
23 라즈베리파이 운영체제에 관하여 title: MoonBlonix 2016-02-05 1457
22 [리눅스] 기본 명령어 title: MoonBlonix 2016-02-05 1630
21 [리눅스] C 언어 개발환경 구축 title: MoonBlonix 2016-02-05 1862
20 라즈베리파이 GPIO 핀 배열 file title: MoonBlonix 2016-02-05 2057
19 C++ 멤버 함수 포인터 title: MoonBlonix 2016-01-23 1773
18 AVR 직접만든 DC모터 라이브러리 (C++ Class) file title: MoonBlonix 2016-01-16 1515
17 [AVR] I/O 포트 메뉴얼 (ATMega128) file title: MoonBlonix 2016-01-16 1590
» AVR delay 함수 (_delay_ms, _delay_us) title: MoonBlonix 2016-01-15 1639
15 AVR 멀티채널 PWM (타이머 하나로 여러 PWM 구동) title: MoonBlonix 2016-01-15 1649
14 AVR 초패스트 PWM title: MoonBlonix 2016-01-14 1563
13 AVR 타이머 응용 여러 PWM 방식과 예제 file + 1 title: MoonBlonix 2016-01-14 1650