Работать на STM32 с DS18x20
я уже научился. Теперь вот перенес код в блок ИК-контроллера. Сначала было обрадовался, что все работает, но, проверив, что там с АЦП происходит (его тот же канал 1 ПДП1 пинает) понял, что радовался рано. Благо, решилось все элементарно добавлением двух строчек после завершения работы ПДП 1-wire:
adc_start_conversion_regular(ADC1);
adc_start_conversion_direct(ADC1);
Я уже
писал про DS18S20. Вот что сейчас получается. После "устаканивания" в течение пяти минут датчики показывают:
Readed temperature for sensor 0: 275/10 degrC
Readed temperature for sensor 1: 275/10 degrC
Readed temperature for sensor 2: 280/10 degrC
Readed temperature for sensor 3: 280/10 degrC
Readed temperature for sensor 4: 280/10 degrC
Readed temperature for sensor 5: 280/10 degrC
Readed temperature for sensor 6: 280/10 degrC
Readed temperature for sensor 7: 280/10 degrC
Теперь грею №3 пальцем (на макетке датчики близко натыканы, так что соседние тоже немного греются):
Readed temperature for sensor 0: 275/10 degrC
Readed temperature for sensor 1: 275/10 degrC
Readed temperature for sensor 2: 280/10 degrC
Readed temperature for sensor 3: 305/10 degrC
Readed temperature for sensor 4: 290/10 degrC
Readed temperature for sensor 5: 280/10 degrC
Readed temperature for sensor 6: 285/10 degrC
Readed temperature for sensor 7: 280/10 degrC
Буквально через минуту:
Readed temperature for sensor 0: 275/10 degrC
Readed temperature for sensor 1: 275/10 degrC
Readed temperature for sensor 2: 280/10 degrC
Readed temperature for sensor 3: 280/10 degrC
Readed temperature for sensor 4: 280/10 degrC
Readed temperature for sensor 5: 280/10 degrC
Readed temperature for sensor 6: 280/10 degrC
Readed temperature for sensor 7: 280/10 degrC
Ну и для контроля работы АЦП я воткнул прямо в разъем один HEL-705, вот как меняется его сопротивление при нагреве пальцем: 1104, 1115, 1117, 1118, 1120 (в °C это 27.4, 30.3, 30.9, 31.1, 31.7). Пока я запускал октаву и пересчитывал сопротивление в температуру, показания термодатчика опять вернулись к исходной температуре.
Теперь остается добавить идентификацию датчиков, сохранение их номеров во флеш-памяти МК и интеграцию показаний в систему команд контроллера (по команде [ A ] помимо восьми температур с "холодных" терморезисторов будут еще выплевываться температуры, снятые с "горячих").