乐鑫技术交流
直播中

王涛

7年用户 1221经验值
私信 关注
[问答]

使用os_timer_arm_us生成占空比为 50% 的 4uS 方波,但会产生4mS方波的原因?

您好,我使用os_timer_arm_us
生成占空比为 50% 的 4uS 方波,但这会产生4mS方波!!!我的错误是什么?谢谢

代码:全选#define out_pin 5
volatile unsigned long timeSpent=1;
volatile int toggle;
unsigned long prevMillis=0;
unsigned long current_time=0;

extern "C" {
#define USE_US_TIMER
#include "user_interface.h"
#include "osapi.h"
#define os_timer_arm_us(a, b, c) ets_timer_arm_new(a, b, c, 0)
}

os_timer_t t0;


void myIsrTimer(void*z)
{
  current_time = micros();
  timeSpent = current_time - prevMillis;
  prevMillis =  current_time;  
  //toggle = (toggle == 1) ? 0 : 1;
  //digitalWrite(out_pin,toggle);  
}

void setup() {
  pinMode(out_pin, OUTPUT);  
  os_timer_setfn(&t0, myIsrTimer, NULL);
  os_timer_arm(&t0, 4, true);
  // Initialise Serial connection
  Serial.begin(115200);
}

void loop() {
  Serial.print(timeSpent);Serial.print(" ");
}


                        

更多回帖

发帖
×
20
完善资料,
赚取积分