循环函数中的arduino指针

时间:2015-11-03 10:06:34

标签: c pointers arduino

我有一个无限循环函数:

void lancementCycleSecond(void *idCycleSecond) {

  const int i = *(int *)idCycleSecond;

  float relance = RelaisCycle[i].timeOn + RelaisCycle[i].timeOff;
  Serial.println(F(" "));
  Serial.print(F(" Action on "));
  Serial.print(RelaisCycle[i].nom);
  Serial.println(F(" "));

  RelaisCycle[i].idTimer= t.pulseImmediate(RelaisCycle[i].pin, RelaisCycle[i].timeOn, LOW);
  cycles[i].idTimer1 = t.after(relance, lancementCycleSecond,(void *)&i);
  RelaisCycle[i].onOff;
}

我认为这一行是问题,因为所有工作都是第一次

t.after(relance, lancementCycleSecond,(void *)&i);

对于第一次i =3,但是第二次(在循环中)i= -6092

我认为我在(void *)&i犯了一个错误。我也只测试&i

这里是after();

的文档
  

描述

     

在一段时间后运行一次回调函数。

     

语法

     

t.after(期间,回调,背景);

     

参数

     

期间:在运行回调函数之前等待多长时间   毫秒(unsigned long)回调:回调的名称   定时器事件触发时调用的函数(函数指针)   context:要传递给回调函数的上下文值(void   指针)

     

返回

     

Timer事件的ID(int8_t或char)

感谢您的帮助。

0 个答案:

没有答案