Спасибо всем за участие.
Не стал дальше разбираться с указателем на структуры, выше описанным.
Стал передавать непосредственно структуры из одной функции в другую :
Цитата
if (a==0u) { Packet_TNC1(Alfa,&Struk1);}
else
if (a==1u) { Packet_TNC1(Alfa,&Struk0);}
if (a==0)
{
//--------------------------------------------Транспортная часть----------------------------------------------
if (flag_PPI_sz2==0) { PPI_massiv('g',&Struk0);} //отправка массива по шине PPI в синтезатор
if (flag_PPI_sz1==0) { PPI_massiv('s',&Struk0);} //отправка массива по шине PPI в синтезатор
if (flag_PPI_sinc>0u) { massiv_time_setka(&Struk0,Event_word);flag_PPI_sinc_D2=1;} //отправка массива по шине PPI в синхронизатор
//-------------------------------------------------------------------------------------------------------------
}
if (a==1)
{
//--------------------------------------------Транспортная часть----------------------------------------------
if (flag_PPI_sz2==0) { PPI_massiv('g',&Struk1);} //отправка массива по шине PPI в синтезатор
if (flag_PPI_sz1==0) { PPI_massiv('s',&Struk1);} //отправка массива по шине PPI в синтезатор
if (flag_PPI_sinc>0u) { massiv_time_setka(&Struk1,Event_word);flag_PPI_sinc_D2=1;} //отправка массива по шине PPI в синхронизатор
//-------------------------------------------------------------------------------------------------------------
}
всё заработало, я обрадовался и занялся другими делами.
Потом обратил внимание что есть сбои , а именно - в структуре ряд элементов массивов начинают принимать значение которое они в принципе по логике программы не могут принять.
Конкретно - массивы структур, например TNI[0] - становится равен нулю (всегда нулю, других неправильных значений нет).
хотя он нигде не может получить такое значение и даже инициализируется в процедуре Packet_TNC1() через 0xFFFFFFFF;
Единственная функция которая влияет на структуры - Packet_TNC1() , остальные функции через которые структуры проходят - только читают их.
В программе много прерываний, но структура и коэффициенты её касающиеся нигде в прерываниях не изменяются и даже не читаются.
такой вопрос - где можно покопаться в поиске причин обнулений части структур?
з.ы.
причём заметил следующее - чем меньше размер массивов в структуре тем чаще сбои, хотя по логике работы в массиве используется сейчас только первые 10 элементов.
Т.е. если структура описана с массивами unsigned int TNI[256]; - такого размера , то сбои будут раз в минуту например.
А если TNI[20] то в течении секунды. Причём индексы везде контролируются и не выходят за пределы массивов, по крайней мере я так думаю.
Также хочу отметить - несмотря на проблемы со структурами , сама программа не валится, продолжает работать.