【发布时间】:2016-02-05 10:44:02
【问题描述】:
我是 C 语言的初学者。
我有一个将一些特定值写入寄存器的函数:
if(something == someCondition )
{
Write_into_register( Msg->R_addres, Msg->value );
}
到目前为止,这有效。 我还有一个读取函数,它只是读取写入寄存器的值:
uint read_value_from_register( R_addres addr ){}
这也很好用。
现在我想要这样的东西:
- 每次将值写入寄存器时,检查它是否真的是正确的值写入寄存器(使用我的读取功能)
- 如果值没有写入或者不是同一个值,尝试3次写入正确的值
- 如果第三次尝试不成功,则引发错误
如何表示这个算法并将其与我现有的函数结合起来?你能把它表示为伪代码吗? 将不胜感激!
尝试过这样的事情:
int index;
Write_into_register(addres, value );
for (index=0;index<3;i++)
if (value== read_value_from_register(addres))
return 1;
else
return ERROR;
【问题讨论】:
-
这些寄存器是什么?为什么写作会失败并且必须进行验证?通常寄存器是非常低级的,写入它们基本上总是有效的。例外情况是微控制器中更常见的外围或 I/O 相关寄存器。你不是很清楚。
-
这对于任何了解循环和条件的程序员来说都是微不足道的。你试过什么?它有什么具体问题吗?如果你不知道如何使用循环和条件,也许你需要一些编程入门课程?
-
这些寄存器位于集成电压控制单元中。这些值是通过 i2c 总线从其他组件发送的,它是一个安全相关系统。
-
展示你尝试过的东西,很简单。
-
在开始使用 C++ 编程之前,您应该学习 C++。 C++ 与 Ruby 不同,在很多方面都更难。从这里挑选一本书:The Definitive C++ Book Guide and List
标签: c++ c cpu-registers microprocessors