Во, це дело. Првда, не верится, чтобы ни разу показания не заерундили (+)
Отправлено
Quasy 08 октября 2008 г. 13:17
В ответ на: Где-то так отправлено
leon 08 октября 2008 г. 12:41
Переменную adc_filtr_data надо делать volatile, раз она меняется в прерывании. Это просто для близира. Но самое главное, если прерывание ADC придет в промежутке между считываниями LOW и считыванием HIGH величины adc_filter_data из памяти в регистры для проведения операции adc_filtr_data_old - adc_filtr_data. Можно получить младшие и старшие части величины adc_filtr_data от разных измерений. Панацея - перед арифметикой в фоновой функции работать с копией adc_filter_data, считанной при запрещенных прерываниях.