如何在 arduino 中传递函数参数
How do I pass the function argument in arduino?
>我正在尝试通过在微控制器中写入寄存器值来控制电机中的速度。
unsigned long PrintHex32( uint32_t data) // prints 32-bit data in hex with leading zeroes
{
uint32_t data2 = data << 8;
char tmp[16];
uint16_t LSB = data2 & 0xffff;
uint16_t MSB = data2 >> 16;
unsigned long ppsval2 = sprintf(tmp, "0x%.4X%.4X%", MSB, LSB);
Serial.println(tmp);
Serial.println("***************");
return tmp;
}
void NoRamp() {
Serial.println("No Ramp");
unsigned long ppsVal = (VMAX * FS * uS);
unsigned long ppsVal3 = PrintHex32(ppsVal);
Serial.println(ppsVal);
Serial.println(ppsVal3);
Serial.println("$$$$$$");
//********* NO Ramp **********////////
sendData(0xA0, 0x00000000); //RAMP Mode
// sendData(0xA4, 0x03E80000); //VMAX-5rps/5hz
// sendData(0xA4, 0x00c80000);
sendData(0xA4, ppsVal3); //VMAX-1rps/1hz
}
最后我需要在十六进制转换后发送数据格式 发送数据(0xA4,0x00c80000(
但目前,我正在获得打印输出:
No Ramp
0x00C80000
***************
51200
0
$$$$$$
嗯,我在哪里犯错误?谁能好心地砸一下我的头! 谢谢堆!!
PS:如果有人需要知道,也发送数据方法采取以下参数!
unsigned long sendData(unsigned long address, unsigned long datagram)
编辑:我想我能理解要问的正确问题吗?
unsigned long PrintHex32( uint32_t data) // prints 32-bit data in hex with leading zeroes
{
uint32_t data2 = data << 8;
//char tmp[16];
uint16_t LSB = data2 & 0xffff;
uint16_t MSB = data2 >> 16;
unsigned long val = xxxx(uint16_t LSB) + uint16_t MSB(YYY);
//sprintf(tmp, "0x%.4X%.4X%", MSB, LSB);
return val ;
}
如果您可以看到我使用 LSB 和 uint16_t MSB 将我的输入 data2 转换为十六进制uint16_t。 如何将这两个值保存为一个单独的无符号长值。 然后我可以返回该变量。我认为使用 sprintf 方法是错误的,因为它确实只显示字符表示?如果我错了,请纠正我吗?
编辑中的 xxxx 可能应该是 2^16 aka 65536:
#include <cassert>
using namespace std;
int main(int argc, char * argv[]) {
unsigned int data2 = 12345678;
uint16_t LSB = data2 & 0xffff;
uint16_t MSB = data2 >> 16;
unsigned long val = (1<<16) * MSB + LSB;
unsigned long val2 = 65536 * MSB + LSB;
assert(val == data2);
assert(val2 == data2);
}
相关文章:
- 如何在jthread中传递带有参数和stop_condition的函数
- 如何在C++中将迭代器作为函数参数传递
- void 函数可以传递值参数吗?
- 将函数参数完美转发到函数指针:按值传递呢?
- 为什么我不能将引用作为 std::async 的函数参数传递
- 节点插件 API 将数组作为函数参数传递
- 将字符串数组作为函数参数传递
- 在 C++ (Arduino) 中传递带有参数的函数作为参数
- 如何通过构造函数传递模板参数?
- C++ 如何根据作为输入传递的参数调用一个构造函数或另一个构造函数?
- 如何通过 C++ 中的函数参数传递初始值设定项列表的固定大小的初始值设定项列表?
- 我可以动态创建新地图并作为函数参数传递吗?
- 通过引用函数传递指针参数是什么意思?
- 如何在 arduino 中传递函数参数
- 按引用传递函数参数
- 'Invalid use of void expression'传递函数参数
- 通过指针传递函数参数
- 如何使用Boost::Phoenix传递函数参数
- 用户输入字符串流,然后需要转换为字符串来传递函数参数
- 传递函数参数时的c++执行顺序