add ESP32 impl

This commit is contained in:
Stephen Crane 2018-08-17 15:22:49 +01:00
parent cde06f03cd
commit 79ac908472
1 changed files with 16 additions and 3 deletions

View File

@ -1,17 +1,18 @@
#ifdef notdef
#include <Arduino.h>
#include <Energia.h>
#include <stdint.h>
#if defined(__LM4F120H5QR__)
#include <inc/hw_ints.h>
#include <driverlib/interrupt.h>
#include <driverlib/sysctl.h>
#include <driverlib/timer.h>
#endif
#include "timed.h"
static Timed *t;
// FIXME: disable timer when tick() returns false
#if defined(__LM4F120H5QR__)
static void timer0isr(void) {
ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
t->tick();
@ -27,4 +28,16 @@ void timer_create(unsigned freq, Timed *client) {
ROM_TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, ROM_SysCtlClockGet() / freq);
}
#elif defined(ESP_PLATFORM)
void IRAM_ATTR onTimer() {
t->tick();
}
void timer_create(unsigned freq, Timed *client) {
hw_timer_t *timer = timerBegin(3, 80, true); // prescaler of 80
timerAttachInterrupt(timer, &onTimer, true);
timerAlarmWrite(timer, 1000000 / freq, true);
timerAlarmEnable(timer);
}
#endif