Pic çalışma mantığı ile ilgili bir soru.

ABYS

Üye
Katılım
17 Nis 2008
Mesajlar
219
Puanları
1
Pic için örneğin şu şekilde bir program yazoruz.
#include ...
.....
....
void main(){
while(1){
,,,,,
,,,,
,,,,
}}
burada mikrokontolör while (1) içindeki kısmı sürekli olarak işlemesi gerekiyor diye biliyorum.
Bir while döngüsü içindeki satırların tamamı işlendikten sonra giriş çıkış registerlarındaki değerler alınıyor yada dışarı veriliyor. Sonra tekrar çevrimin başına geçiliyor diye biliyorum.
Döngünün içerisine sırasıyla
a=5;
a=4;
PORTB=a; yazarsak
hiç bir zaman PORTB de 5 değerini göremiyor olmamız gerekir. Ama işin içinde registerlar olursa ??? Yani a bir çıkış registerıysa(RB0 mesela).
örneğin 4x7 kollu göstergede 4 haneli bir sayı için bir göster fonksiyonu yazılmış olsun. bu goster fonksiyonu içinde sayıyı önce 1000'e bölüp binler hanesini sonra bunun 1000 katını sayıdan çıkarıp 100 e bölüp yüzler hanesini elde ediyoruz ve böyle devam ediyor. her hane belirlendikten sonra bunu göstergeye(çıkış registerına yazıp) gönderip bir bekleme işlemi yapıyoruz sonra göstergeyi sıfırlayıp diğer haneyi hesaplayıp gönderiyoruz. Bunların hepsi aynı çevrim içinde olduğuna göre nasıl oluyorda aynı porta yazdığımız değerlerden ilk yazılanlar kaybolmuyor.??
Delay işlemini ben daha önce DelayMs() fonksiyonu ile yada while(sayi--) gibi iki şekilde de yaptım.
 

Forum istatistikleri

Konular
128,169
Mesajlar
915,621
Kullanıcılar
449,933
Son üye
selcukbatman54

Yeni konular

Geri
Üst