Nextion Lcd ve usart kesmesi ?

Başlatan mustafa_cmbz, 12 Kasım 2018, 17:53:09

mustafa_cmbz

Merhabalar.

Nextion lcd kullanırken işlemciyi kesme kullanmazsak serin komututla lcd ye köle kılıyoruz.

Arka planda nem ve sıcaklık ölçüp gerektiğinde röle çektirecek bir kart yapacağım ama aynı zamanda nextion lcd den dokunmatik bilgisi alması gerek.

2 adet donanımsal serial haberleşmesi olan pic kullanmayı düşünüyorum bunuda göz önüne alırsak kesme olayı sorun yaratırmı configrasyon ayarları nasıl olmalı ve kesme kullanırken başka nelere dikkat etmek gereklidir merak ediyorum.

eeburakdemir

Merhaba,
Nextion ile çalışırken hiç kesmesiz çalışmadım. Heralde kesmesiz çalışırsak da bir timer kesmesinde illaki kontrolünü yapmamız lazımdır. 26k80 ile nextion ile haberleşirken aynı zamanda diğer uart hattından da cihazımla haberleşiyordum. Extra bir ayarlama yapmadım. Sadece diğer haberleşme hattından yapılan kısım ile nextion arası yapılan haberleşmede güzel bir algoritma oturtman lazım. Belki state machine gibi gibi gibi... Yada nextion'dan değerleri ölç, çıkış ver gibi ise zaten, sorun çıkaracak kadar büyük bir algoritmayada gerek kalmayacaktır.
Asla pes etme...

mustafa_cmbz

Şöyle olması istiyorum.

İşlemci o esnada diğer usart hattından master olarak karşıdaki nem ve sıcaklık sensörlerinin bağlı olduğu karttan sıcaklık ve nem ne oldu derken ve nem atıyorum fazla ise havalandırmayı çalıştırmak gerektiğinde ve fanları çalıştırdığı esnada yine nem değerini sorgularken arka planda ekrandan menü tuşuna basıldığını algıayabilmem lasım.

Tek derdim Tüm bu nem vs okuma işlemleri yapılırken yada çıkışlar aktifken ekrana dokunulduğunu algılatmak sonrasında zaten tüm mevcutta yürütlen işlemleri durduracağım

Misal yeni bir set değeri gireceğim ekrana dokundum ama o esnada sisleme çalışırken durduracak ben set değerini gireceğim tekrar ana menüye döndüğünde değerleri tekrardan sorgulayacak vs gibi..

Yani işin özü ben işlemci ile başka işler yaparken ekrana dokunulduğunu anlamam lasım..


Aklıma şöyle birşey geldi ekran ana karşılama sayfasında iken devamlı 1sn de bir atıyorum ekrandan işlemciye 10 bilgisini göndereceğim butona basılırsa 20 bilgisi gelecek mesela.

İşlemci devamlı dinlemede olacak 7 bilgisi geliyorsa gidip ölçümleri yapacak geri dönüp dinlemeye devam edecek buton bilgisi gelirse menü ekranına gidecek.

Ama şöyle bir sıkıtım var diyelim nem arttı havalandırmayı açmam lasım bu sefer başka bir etiket oluşturup burada ayrı bir etikette sadece nemi düşürürken ayrıca seri portu aynı şekilde dinlemem gerekecek..


Aslında kesme kullanırsak program nerde olursa olsun işi bırakıp herşeyi kapatıp ekrana bakacak kesme bitiminde ana menüye sil baştan tekrar dönecek diye düşünüyorum.


eeburakdemir

Merhaba,
Anlattıklarınıza bakılırsa kesme kullanmanız sizin için daha güzel olacak. Sıkıntı çıkacağını sanmıyorum bu yaptığınız işler için.
Asla pes etme...

ilyas KAYA

Direk nextion ile sensörleri okusanız tuş lara basılıp basilmadigini mcu ya göndermenize de gerek kalmaz. Hatta mcu ya bile gerek kalmaz. Tabi nextion gelişmiş versiyon kullanmanız gerekecek

mustafa_cmbz

Alıntı yapılan: cezeri - 14 Kasım 2018, 13:40:01Direk nextion ile sensörleri okusanız tuş lara basılıp basilmadigini mcu ya göndermenize de gerek kalmaz. Hatta mcu ya bile gerek kalmaz. Tabi nextion gelişmiş versiyon kullanmanız gerekecek

Şuan oturup nextion kütüphanesini hatim edecek vaktim yok hocam.ama epeydir ı/o lu olanlar dikkatimi çekmiyor değil hani.


Alıntı yapılan: eeburakdemir - 14 Kasım 2018, 10:30:44Merhaba,
Anlattıklarınıza bakılırsa kesme kullanmanız sizin için daha güzel olacak. Sıkıntı çıkacağını sanmıyorum bu yaptığınız işler için.

Kesme olayını deniyeceğim.Kodlar üzerinde çalışıyorum bklm..

yas

Kesmeye dallandığında PIR1.5 ve PIR3.5 bayrakları kontrol edip 1. uartmı 2. uartmı olduğunu anlayarak gerisini hserinX ile işleyip çıkışta buffer ı okuyarak bayrağı temizlemek yeterli sıkıntısız çalışıyor.

argelojik

Nextion demişken, takıldığım bir nokta var. Nextion ekrana float değerleri nasıl yazıyorsunuz? Örneğin 1.2 , 1.5 gibi virgüllü sayıları nasıl yazdırabiliriz. Nextion Waveform  0 ile 255 arasında bir değer istiyor . Ben ekrana grafik çizdirmek istiyorum. Siz floatlı sayıları  nasıl kullanıyorsunuz?

mustafa_cmbz

Alıntı yapılan: yas - 16 Kasım 2018, 12:03:48Kesmeye dallandığında PIR1.5 ve PIR3.5 bayrakları kontrol edip 1. uartmı 2. uartmı olduğunu anlayarak gerisini hserinX ile işleyip çıkışta buffer ı okuyarak bayrağı temizlemek yeterli sıkıntısız çalışıyor.

kesmeyi 1. usart yani ekran için kullanacağım.birkaç deneme yaptım sonuçlar güzel.realde denemek kaldı birtek.

burç tankal

Alıntı yapılan: argelojik - 16 Kasım 2018, 16:45:25Nextion demişken, takıldığım bir nokta var. Nextion ekrana float değerleri nasıl yazıyorsunuz? Örneğin 1.2 , 1.5 gibi virgüllü sayıları nasıl yazdırabiliriz. Nextion Waveform  0 ile 255 arasında bir değer istiyor . Ben ekrana grafik çizdirmek istiyorum. Siz floatlı sayıları  nasıl kullanıyorsunuz?
Maalesef nexiton'da float sayılar yok. Ben eğer sırf ekranda göstereceksem float to string fonksiyonunu  ile string hale getirerek o şekilde gösteriyorum. Eğer Sayı formatında göndermek istiyorsanız yine int haline döndürüp göndermeniz gerekecektir