1 Востаннє редагувалося MCS-51 (19.02.2024 15:19:43)

Тема: Правильне архітектурне рішення для опитуваня датчика без ОС

Добрий день. Мова програмування - С/С++ (без власних класів). Є написана власноруч "бібліотека" (якщо так можна її назвати) роботи "по таймеру", тобто є можливість викликати функції із потрібним періодом, із кроком кратним 1 мс. Є код роботи з датчиком DHT11, на перших порах реалізував втупу:
1. запит на початок конвертації
2. тупо очікую на місці 18 мс
3. зчитую дані
Тепер не хочу втупу чекати 18 мс, а хочу зробити щось на зразок:
1. запит на початок конвертації
2. піти по своїх справах на 18 мс
3. первернутися через визначені 18 мс, і зчитати дані

Крім того датчик не можна опитувати частіше 1 Гц, бо так пише документація (і він насправді не відповідає).

Яке рішення архітектурно правильніше у цьому випадку:
1. Інгрегрувати роботу з бібліотекою таймера у бібліотеку DHT11, зробивши стейт-машину на декілька станів, із переключенням періоду опутування всередині бібліотеки DHT11.
2. Зробити доступною ззовні змінну періоду опитування датчика, і змінювати її значення ззовні бібліотеки DHT11, не використовуючи біблітеку таймера всередині бібліотеки DHT11.