Arduino - 陀螺仪传感器 - ISR - 时间戳

阿尔达姆

我目前正在努力重新创建一个四轴飞行器控制器。

我正在从我的陀螺仪传感器获取数据,为此,我正在使用带有中断的 ISR。

我的问题是,当我在主程序上调用我的函数“gyro.getX”时,它起作用了。但是,当我从 ISR 调用此函数时,它不起作用。我发现错误的原因,我使用的函数是由“Adafruit_LSM9DS0”库(来自 ST)提供的,它使用了“时间戳”。我认为我的 ISR 的当前时间与我的主程序的当前时间不同,但我不知道如何调整它。

这是我的程序的快捷方式:

void loop(){
/*main prog*/
}

/*
*Reserve interrupt routine service (ISR) by Arduino
*/
ISR(TIMER2_OVF_vect)
{
    TCNT2 = 256 - 250; // 250 x 16 µS = 4 ms
    if (varCompteur++ > 25)// 25 * 4 ms = 100 ms (half-period)
    {
        varCompteur = 0;

        SensorGet(pX, pY);//Feed gyro circular buffers
    }
}

void SensorGet(float * pRollX, float * pPitchY)
{   
    lsm.getEvent(&accel, &mag, &gyro, &temp);

    GiroX_Feed(pX, gyro.gyro.x);
    GiroY_Feed(pPitchY, gyro.gyro.y);
}



bool Adafruit_LSM9DS0::getEvent(sensors_event_t *accelEvent,
                                sensors_event_t *magEvent,
                                sensors_event_t *gyroEvent,
                                sensors_event_t *tempEvent)
{
  /* Grab new sensor reading and timestamp. */
  read();
  uint32_t timestamp = millis();

  /* Update appropriate sensor events. */
  if (accelEvent) getAccelEvent(accelEvent, timestamp);
  if (magEvent)   getMagEvent(magEvent, timestamp);
  if (gyroEvent)  getGyroEvent(gyroEvent, timestamp);
  if (tempEvent)  getTempEvent(tempEvent, timestamp);

  return true;
}
Delta_G

问题不在于时间。问题很可能是您的传感器使用 I2C 并且它在中断例程期间被禁用,或者它是一些其他依赖中断来运行的通信协议,因此在您的 ISR 期间被禁用。

你真的在滥用中断。这不是中断的目的。中断应该是超快的,没有时间在那里进行通信。所以真正的问题是你为什么认为你需要一个中断?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 IMU 传感器(加速度计、陀螺仪)读数及其时间戳导出到数据文件中

来自分类Dev

Android穿戴式加速度计/陀螺仪传感器

来自分类Dev

颤振加速度计/陀螺仪传感器滞后

来自分类Dev

根据时间戳安排实时传感器输入数据

来自分类Dev

Excel:通过时间戳平均传感器数据

来自分类Dev

我可以在android中同时在两个应用程序中使用陀螺仪传感器吗?

来自分类Dev

带有arduino的流量传感器

来自分类Dev

延时解除Arduino ISR中的限位开关

来自分类Dev

直升机+ Arduino + MPU6050(陀螺仪+示波器)+ PID

来自分类Dev

Arduino传感器API Web服务器

来自分类Dev

在Arduino中读取传感器时按下按钮

来自分类Dev

Raspberry Pi和Arduino读取串行传感器数据

来自分类Dev

使用Twilio的Arduino Uno PIR运动传感器

来自分类Dev

带有arduino的挠性传感器

来自分类Dev

arduino 无法打开树莓派的红外传感器

来自分类Dev

在延迟中消除Arduino ISR中的限位开关

来自分类Dev

迅捷陀螺仪

来自分类Dev

超声波传感器HC-SR04 + Arduino计算?

来自分类Dev

Arduino UNO +以太网屏蔽+超声波传感器=失败

来自分类Dev

关于如何构建良好的DHT11传感器网络的任何想法?(Arduino + XBee)

来自分类Dev

为什么我的指纹传感器不响应我的arduino代码?

来自分类Dev

连接Arduino传感器MPU6050和处理的问题

来自分类Dev

arduino uno和超声波传感器的结果不正确

来自分类Dev

从实时arduino传感器数据绘制图像

来自分类Dev

使用 Arduino 发送两种不同类型的传感器数据

来自分类Dev

用于 Arduino 的传感器可以与 Raspberry Pi 一起使用吗?

来自分类Dev

arduino 压力传感器跳过旋律 C++ 中的音符

来自分类Dev

阵列和单元阵列的传感器时间分布

来自分类Dev

R; 传感器数据的时间序列分析

Related 相关文章

  1. 1

    将 IMU 传感器(加速度计、陀螺仪)读数及其时间戳导出到数据文件中

  2. 2

    Android穿戴式加速度计/陀螺仪传感器

  3. 3

    颤振加速度计/陀螺仪传感器滞后

  4. 4

    根据时间戳安排实时传感器输入数据

  5. 5

    Excel:通过时间戳平均传感器数据

  6. 6

    我可以在android中同时在两个应用程序中使用陀螺仪传感器吗?

  7. 7

    带有arduino的流量传感器

  8. 8

    延时解除Arduino ISR中的限位开关

  9. 9

    直升机+ Arduino + MPU6050(陀螺仪+示波器)+ PID

  10. 10

    Arduino传感器API Web服务器

  11. 11

    在Arduino中读取传感器时按下按钮

  12. 12

    Raspberry Pi和Arduino读取串行传感器数据

  13. 13

    使用Twilio的Arduino Uno PIR运动传感器

  14. 14

    带有arduino的挠性传感器

  15. 15

    arduino 无法打开树莓派的红外传感器

  16. 16

    在延迟中消除Arduino ISR中的限位开关

  17. 17

    迅捷陀螺仪

  18. 18

    超声波传感器HC-SR04 + Arduino计算?

  19. 19

    Arduino UNO +以太网屏蔽+超声波传感器=失败

  20. 20

    关于如何构建良好的DHT11传感器网络的任何想法?(Arduino + XBee)

  21. 21

    为什么我的指纹传感器不响应我的arduino代码?

  22. 22

    连接Arduino传感器MPU6050和处理的问题

  23. 23

    arduino uno和超声波传感器的结果不正确

  24. 24

    从实时arduino传感器数据绘制图像

  25. 25

    使用 Arduino 发送两种不同类型的传感器数据

  26. 26

    用于 Arduino 的传感器可以与 Raspberry Pi 一起使用吗?

  27. 27

    arduino 压力传感器跳过旋律 C++ 中的音符

  28. 28

    阵列和单元阵列的传感器时间分布

  29. 29

    R; 传感器数据的时间序列分析

热门标签

归档