Aktualnie mam trzy bloki obsługujące zapis stanu liczników do FRAM.
Chciałbym te identyczne kawałki kodu włożyć do funkcji, ale nie potrafię...
Tak jest obecnie, 3x dla każdego Klop0, Klop1 i Klop2:
Code: Select all
/ Zmiana stanu KLOP0 - przykład:
if (nIC0_State < oIC0_State) {
klop0->setValue(IC0_Val); // ustawia nową wartość dla klop0 za zmiennej IC0_Val
// (tak samo dla IC1_Val i IC2_Val)
memcpy(tKlop0, (void *)&IC0_Val, 4); // kopiuje bloki pamięci do tabl. tKlop0[4],
// wartość spod adr. IC0_Val
i2ceeprom.write(IC0_Offset, tKlop0, 4); // zapis do FRAM (adr, nazwa tablicy, 4 bajty)
Code: Select all
/ Zmiana stanu KLOP0 - przykład:
if (nIC0_State < oIC0_State) {
Zapis_FRAM(tKlop0,&IC0_Val, IC0_Offset) // => ta nowa funkcja
Code: Select all
Zapis_FRAM(tKlopX,&ICX_Val, ICX_Offset) // => to ma być ta nowa funkcja. "X" przyjmuje wartości 0-2
klopX->setValue(ICX_Val); // ustawia nową wartość dla klop od 0 do 2
memcpy(tKlopX, (void *)&ICx0_Val, 4); // kopiuje bloki pamięci spod adr. ICx_Val do tablicy dla klop 0-2
i2ceeprom.write(ICx_Offset, tKlopx, 4); // zapis z tablicy do FRAM dla klop 0-2
return (ICX_Val) // zwraca tylko nową wartość ICx_Val
Proszę o pomoc, jak to zrobić.