Tarama Süresi Sorunu

nakres79

Üye
Katılım
16 Haz 2007
Mesajlar
14
Puanları
1
Yaş
39
Merhaba Arkadaşlar

Öğrencilik yıllarımdan beri hobi düzeyde PIC uygulamalarını takip ediyorum. Daha önce proteus da fark ettiğim, sümilatör sorunu deyip üstüne düşmediğim konu gerçekte de karşıma çıktı.

PIC16F877A, 4Mhz kristal ve 22pF kondansatör kullanarak bir devre oluşturdum. Bir de LCD bağladım.

Basitçe bir program yazdım

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Device 16F877A
XTAL = 4

Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTC.6
Declare LCD_RSPIN PORTC.7
Declare LCD_INTERFACE 4
Declare LCD_LINES 4

dim sayac as dword

B1:
sayac=sayac+1
Print At 1,1, dec sayac
goto B1

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Gerçek zamanda 60sn olduğunda LCD'de sayaç yaklaşık 1000-1100 arası bir değer gösteriyor.

Proğramı derlediğim zaman 287 step gözüküyor. 4Mhz kristal ile 1 step 1us olması gerekiyor. Bu durumda benim programımın bir döngüsü 1ms'den kısa olmalı. Ve sayacım 60000 üzerinde bir değer göstermeli.

Fakat sonuç ortada. Gözden kaçırdığım konu ne?
 
Merhaba Arkadaşlar

Öğrencilik yıllarımdan beri hobi düzeyde PIC uygulamalarını takip ediyorum. Daha önce proteus da fark ettiğim, sümilatör sorunu deyip üstüne düşmediğim konu gerçekte de karşıma çıktı.

PIC16F877A, 4Mhz kristal ve 22pF kondansatör kullanarak bir devre oluşturdum. Bir de LCD bağladım.

Basitçe bir program yazdım

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Device 16F877A
XTAL = 4

Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTC.6
Declare LCD_RSPIN PORTC.7
Declare LCD_INTERFACE 4
Declare LCD_LINES 4

dim sayac as dword

B1:
sayac=sayac+1
Print At 1,1, dec sayac
goto B1

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Gerçek zamanda 60sn olduğunda LCD'de sayaç yaklaşık 1000-1100 arası bir değer gösteriyor.

Proğramı derlediğim zaman 287 step gözüküyor. 4Mhz kristal ile 1 step 1us olması gerekiyor. Bu durumda benim programımın bir döngüsü 1ms'den kısa olmalı. Ve sayacım 60000 üzerinde bir değer göstermeli.

Fakat sonuç ortada. Gözden kaçırdığım konu ne?
simülasyonda picin frekansını da 4MHz olarak ayarladınız mı ?
 
Sevgili arkadaşım imzamdanda anlaşılacağı gibi 15. yılıma girdim. Bu dediğiniz konuyu bir de python diline sorayım dedim.
1 den 10 000 kadar olan sayılarını bir değişkene atması 0.001 saniye sürüyor.
Aynı aralıkda yazdır dediğim zaman ise 25 saniye sürüyor.
O fonksiyonun çalışma süresini LCD ye yazdırırsan ne demek istediğimi anlayacaksınız.
İşlemci bizim anlayacağımız bir şeye dönüştürdüğü zaman donanım iterasyon (CPU) ve LCD tepki süresi ayrıca LCD kütüphanesindeki minimal trigger time süreleri size gecikme yada bulanık (standart olmayan) tepkilerin oluşmasına sebep olacaktır.
Micro işlemcilerde threading bir muammadır.
 
Sevgili arkadaşım imzamdanda anlaşılacağı gibi 15. yılıma girdim. Bu dediğiniz konuyu bir de python diline sorayım dedim.
1 den 10 000 kadar olan sayılarını bir değişkene atması 0.001 saniye sürüyor.
Aynı aralıkda yazdır dediğim zaman ise 25 saniye sürüyor.
O fonksiyonun çalışma süresini LCD ye yazdırırsan ne demek istediğimi anlayacaksınız.
İşlemci bizim anlayacağımız bir şeye dönüştürdüğü zaman donanım iterasyon (CPU) ve LCD tepki süresi ayrıca LCD kütüphanesindeki minimal trigger time süreleri size gecikme yada bulanık (standart olmayan) tepkilerin oluşmasına sebep olacaktır.
Micro işlemcilerde threading bir muammadır.

Evet konu tamamen LCD kullanmakla ilgili. Misal aşağıdaki programı yazdım
B1:
sayac=sayac+1
if sayac>=100000 then
sayac=0
toggle led1
endif
goto B1

yaklaşık 5sn'de bir Led yanıp söndü. Yani program saniyede yaklaşık 20000 tekrar yaptı. Aynı programı LCD komutuyla yazdığımda süre uzadı.

Yardım ve yorumlarınızdan ötürü teşekkür ederim
 

Yeni mesajlar

Forum istatistikleri

Konular
128,179
Mesajlar
915,661
Kullanıcılar
449,944
Son üye
önder sem

Yeni konular

Geri
Üst