[Zephyr] nRF52 타이머(timer) 사용법!!
Embeded/nRF522024. 11. 28. 14:03
반응형
타이머 설정하는 방법입니다
K_TIMER_DEFINE 또는 k_timer_init 둘중 하나로 타이머를 초기화 해주면 됩니다
#include <stdio.h>
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>
// 디바이스 트리에서 led0 노드를 가져옴
#define LED0_NODE DT_ALIAS(led0)
// 가져온 led 노드를 구주체로 초기화
static const struct gpio_dt_spec led0 = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
struct k_timer timer;
void timer_start(struct k_timer *timer_id){
printk("timer Start\n");
int ret;
ret = gpio_pin_toggle_dt(&led0);
if (ret < 0) {
return;
}
}
void timer_stop(struct k_timer *timer_id){
printk("timer Stop\n");
}
// k_timer_init 또는 K_TIMER_DEFINE로 타이머 설정
K_TIMER_DEFINE(timer,timer_start,timer_stop);
int main(void)
{
int ret;
// gpio가 준비되었는지 확인
if (!gpio_is_ready_dt(&led0)) {
return 0;
}
// led 핀을 출력으로 설정
ret = gpio_pin_configure_dt(&led0, GPIO_OUTPUT_ACTIVE);
// 타이머 설정, timer 시작 함수, timer 종료 함수 설정
// k_timer_init(&timer, timer_start, NULL);
//k_timer_init(&timer, timer_start, timer_stop);
// 타이머 시작, 타이머가 최초로 시작되는 시간, 타이머 실행 주기
k_timer_start(&timer, K_SECONDS(1), K_SECONDS(1));
// 타이머 중지
//k_timer_stop(&timer);
while (1) {
}
return 0;
}
반응형
'Embeded > nRF52' 카테고리의 다른 글
[Zephyr] nRF52 Uart 송신, 수신 사용법!! (0) | 2024.11.29 |
---|---|
[Zephyr] nRF52 Thread(쓰레드) 방법!! (0) | 2024.11.28 |
[Zephyr] nRF52 GPIO 입력 제어(인터럽트)!! (0) | 2024.11.28 |
[Zephyr] nRF52 GPIO 입력 제어(폴링)!! (0) | 2024.11.28 |
[Zephyr] nRF52 GPIO 출력 제어!! (0) | 2024.11.28 |