Seri haberleşen Sensör okuma aralığını ayarlama

Başlatan AKAY989, 29 Aralık 2022, 13:59:02

AKAY989

Herkese merhaba iyi çalışmalar
dht22 ile tek kablolu seri haberleşme yapıyorum
Sensör data sheet inde sensör okuma hızını 2 ms olarak belirtmiş üretici.
Aynı zamanda yazılımımda ds1307 ile zaman uygulaması da mevcut.
while(1) { delay_ms(1000); . . . . . } veya ms(2000) yapinca sorun cozuluyor ancak
sonsuz dongu icerisindeki menu time vs hepsi sekteye ugruyor.
gecikmeyi kaldırdıgımda ise 255-245, 255-246, 255,244 gibi degerler cikiyor, oynuyor surekli
(245,246 sicaklik degeri; unsigned int16 olarak biraktim float yapmadim gozlemlemek icin)
okuma sıklıgını ayarlayabilmek için önerilerinize danışmak istiyorum
tesekkur ederim

uzaylivolkan

#1
Multitasking işlemlerine, FreeRTOS bakabilirsiniz.
Aşağıdaki linkteki örneği inceleyebilirsiniz.
Arduino Rtos Kullanımı

Rtos

Millis Fonksiyonu inceleyebilirsin.
Millis Fonksiyonu Nedir

werdan

millis fonksiyonundan zaman değeri çekilir bir if koşulu ile 2 sn olduğunda bu fonksiyona gir şeklinde ordan istediğin işlemleri yaptırıp sonra zaman farkını alıp her 2 sn de bir kontrol edebilirsiniz


AKAY989

Degerli arkadaslar satirlar dolusu kod oldugu icin yanlislikla sensoru okudugum giris portunu giris olarak tanimladigim kodu silmisim.
Bundan dolayi 2 gundur tek bir yere odaklaniyorum ayri ayri dogru yazdigim her kod icinde hata aliyordum.
Dedigim gibi tanimli bir rtc entegrem oldugundan dolayi onun uzerinden sn lik okuma yapiyorum.
Kodu asagiya birakiyorum, iyi calismalar bol kazanclar..

if(sensorokumazamani==snn){
baslamasinyali();          //sensor okuma fonksiyonu
sensorokumazamani=snn+1 ;
if(sensorokumazamani>59){ fazlasureler=sensorokumazamani-59; sensorokumazamani=fazlasureler;}}