Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "driver/gpio.h"
- #include "wrpTimer.h"
- #include "driver/periph_ctrl.h"
- void timerInit(timer_group_t tGroup, timer_idx_t tVal){
- timer_config_t config;
- config.divider = TIMER_DIVIDER;
- config.counter_dir = TIMER_COUNT_UP;
- config.counter_en = TIMER_PAUSE;
- config.alarm_en = TIMER_ALARM_EN;
- config.intr_type = TIMER_INTR_LEVEL;
- config.auto_reload = 0; //don't autoreload
- timer_init(tGroup, tVal, &config);
- timer_set_counter_value(TIMER_GROUP_0, tVal, 0x00000000ULL); // starts timer from 0
- timer_start(tGroup, tVal); //starts the timer initially
- }
- void tTriggerInUs(uint32_t micros, timer_group_t tGroup, timer_idx_t tVal){
- uint64_t counter_old = 0;
- timer_get_counter_value(TIMER_GROUP_0,TIMER_0,counter_old);
- uint64_t counter_add = (micros * TIMER_SCALE) / 1000;
- timer_set_alarm_value(tGroup, tVal, counter_old+counter_add);
- }
- void tTriggerInMs(uint16_t millis, timer_group_t tGroup, timer_idx_t tVal){
- uint64_t counter_old = 0;
- timer_get_counter_value(TIMER_GROUP_0,TIMER_0,counter_old);
- uint64_t counter_add = millis * TIMER_SCALE;
- timer_set_alarm_value(tGroup, tVal, counter_old+counter_add);
- }
- void tEnableAlarm(timer_group_t tGroup, timer_idx_t tVal){
- timer_set_alarm(tGroup, tVal, TIMER_ALARM_EN);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement