Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

312 Часть 111. Практическое программирование микроконтроллеров А VR ка, в результате чего измеренное значение будет меняться редкими скачками. По моему опыту для датчиков, аналогичных ТМР36, значение температуры следует обновлять не реже, чем один раз в несколько секунд. За это время надо набрать ста­ тистику, т. е . померить как можно больше значений и вывести среднее. 1 РВО (ТО) (ADCO) РАО 40 2 РВ1 (Т1 ) (ADC1 ) РА1 39 С5 3 РВ2 (Т2) (ADC2) РА2 38 о.1 т 4 РВЗ (ОСО) (АDСЗ) РАЗ 37 5 РВ4 (SS) (ADC4) РА4 36 6 PB5 (MOSI) (ADC5) РА5 35 7 PB6 (MISO) (ADC6) РА6 34 8 PB7 (SCK) (ADC7) РА7 33 9 Reset AREF 32 1 0 Vcc GND 31 11 GND AVcc 30 +5 8 1 2 XTAL2 (TOSC2) РС7 29 L1 1 0мкГн 1 3 XTAL1 (TOSC1 ) РС6 28 � 14 RxD ( PDO) РС5 27 к.Ю.rrmepy 1 5 TxD (PD1 ) РС4 26 UARТ (RxO) 1 6 PD2 (INTO) РСЗ 25 17 РDЗ (INT1 ) РС2 24 18 PD4 (ОС1 В) (SDA) РС1 23 19 PD5 (ОС1А) (SCL) PCO 22 20 PD6 (ICP1 ) (ОС2) PD7 21 ATmega8535 Рис. 1 1 .4. Схема измерения температуры Давайте подсчитаем - что означает в таком случае «как можно больше»? Значения у нас 1 О-битовые, значит, в два байта мы. упакуем сумму не менее 64 значений. Та­ кого количества для усреднения обычных величин более чем достаточно. Пусть период обновления составляет примерно 3 секунды, за которые мы должны отсчи­ тать эти 64 значения, отсюда отдельные измерения должны проводиться с перио­ дом примерно 50 мс (частота около 20 Гц). Каждое среднее значение будет заме­ нять предыдущее в памяти SRAM, откуда его можно извлекать для других нужд, - например, для индикации, которая осуществляется в отдельном временном цикле (так, как мы это делали в главе 9) . Измерения будем проводить по прерываниям ТimerO . Если он у вас окажется занят, например, в процедурах динамической индикации, то постараемся, чтобы измере­ ния ей не помешали. При желании можно заменить TimerO на Timer2 - при этом ничего не изменится, кроме названий битов и регистров. Тактирование контроллера для совместимости с процедурами динамической индикации, описанными в главе 9, произведем от кварца 4 МГц - для других частот тактирования придется только

RkJQdWJsaXNoZXIy MTExODQxMg==