Я новичок в языке c.
У меня есть функция, которая записывает определенное значение в регистр:
if(something == someCondition )
{
Write_into_register( Msg->R_addres, Msg->value );
}
Это работает до сих пор.
У меня также есть функция чтения, которая просто читает значение, которое записывается в регистр:
uint read_value_from_register( R_addres addr ){}
Это тоже хорошо работает.
Теперь я хотел бы иметь что-то вроде этого:
Как представить этот алгоритм и совместить его с моими существующими функциями? Вы можете представить это просто как псевдокод?
Буду благодарен!
Попробовал что-то вроде этого:
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;
Предполагая, что ваши данные для записи является целым числом.
int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}
Эта функция запишет и проверит данные. Он вернет 1, если подтверждено, и 0, если не в порядке.
Если вы хотите записать данные три раза, вы должны изменить приведенный выше код следующим образом.
int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
for (int i=0; i<2; i++)
{
if (data == read_value_from_register(addr))
return 1;
else
Write_into_register(addr, data );
}
// Check for last value
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}
Других решений пока нет …