HarryStar писал(а):я все честно промерил осциллографом
Я верю, но пару микросекунд на фронтах можно и не заметить, а прерывание может успеть защелкнуться.
Технический форум по робототехнике.
HarryStar писал(а):я все честно промерил осциллографом
dccharacter писал(а):Michael_K, я, конечно, преклоняюсь, но нифига не понял (((
...
Michael_K писал(а):...
2. Например операция t1 = channel[current_channel]; не атомарная.
...
GlassEagle писал(а):Не совсем понял (точнее говоря, совсем не понял) смысл термина "атомарная" применительно к присваиванию элемента
Да-а-а, вот уж воистину "Век живи - век учись, а дураком помрёшь". Про несоответсвие разрядности переменных и системы я и забыл (последствия длительного увлечения прикладным программированием для случаев, когда прерываниями и не пахнет). Спасибо огромное!!!Michael_K писал(а):...допустим младший байт из переменной "A" скопирован в младший байт переменной "B". В это время происходит прерывание,...
GlassEagle писал(а):Криминал нашёл в том, что current_channel в main-е не получает никакого значения (до его использования)
GlassEagle писал(а):SlaveInControl() непонятно откуда вызывается. Вероятно, из Init_Slave_i2c()