wemosでtimer


概要

wemosでtimerやってみた。
1khzしか、出ない。精度が悪すぎ。腐ってる。

環境

  • wemos d1 r1
  • arduino esp8266 v2.5.0-beta2

波形

シリアルプロット

サンプルコード

tickerを使った。

#include <Ticker.h>

Ticker tk;
volatile unsigned long timeSpent = 1;
unsigned long prevm = 0;
void isrt0(void)
{
    unsigned long now;
    int state = digitalRead(LED_BUILTIN);
    digitalWrite(LED_BUILTIN, !state);
    now = micros();
    timeSpent = now - prevm;
    prevm = now;
}
void setup()
{
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    Serial.begin(115200);
    tk.attach_ms(1.0, isrt0);
}
void loop()
{
    Serial.println(timeSpent);
}

os_timer使った。

extern "C"
{
    #include "user_interface.h"
    #include "osapi.h"
}

os_timer_t t0;
volatile unsigned long timeSpent = 1;
unsigned long prevm = 0;
void isrt0(void * z)
{
    unsigned long now;
    int state = digitalRead(LED_BUILTIN);
    digitalWrite(LED_BUILTIN, !state);
    now = micros();
    timeSpent = now - prevm;
    prevm = now;
}
void setup()
{
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    Serial.begin(115200);
    os_timer_setfn(&t0, isrt0, NULL);
    os_timer_arm(&t0, 1, true);
}
void loop()
{
    Serial.println(timeSpent);
}

以上。