Timer0 interrupt hakkında?

Başlatan mur@t, 21 Şubat 2013, 14:25:23

mur@t

Herkese merhaba,

16F628 ile timer0 interrupt'ını Proteus üzerinde simule ediyorum.


Konfigürasyon aşağıdaki gibi.

OPTION_REG := %10000000;     //1:2 prescaler, assigned Timer0 Module
INTCON  := 0;
TMR0    := 229;         //load value TMR0
INTCON.GIE  := 1;
INTCON.T0IE := 1;    //Enable TMRO interrupt
INTCON.T0IF := 0;


PicTimer Calculatör ile de hesapladığımda, kesme periyodu 10 mikrosaniye görünüyor.



if (INTCON.T0IF = 1) then begin
      
      PORTA.0 := not PORTA.0;

      TMR0 := 229;
      INTCON.T0IE := 1;   //Enable TMRO interrupt
      INTCON.T0IF := 0;
end;


Kesmeye her girdiğimde, PORTA.0'ın durumunu değiştiriyorum.  çıkışı osilaskop ile izliyorum.


elde ettiğim karedalga sinyalin periyodu 20 mikrosaniye olması gerekmiyor mu?


işin içinden çıkmadım. Konu hakkında yardımcı olabilecek var mı?












mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

mur@t

aynı değerleri veriyor, sonuç değişmedi   :o


muhittin_kaplan

proteus ta MCU freq girdiniz mi ?

mur@t

#4
Alıntı yapılan: muhittin_kaplan - 21 Şubat 2013, 15:47:21
proteus ta MCU freq girdiniz mi ?

Evet, frekans girdim ama çizimde kristal bağlamadım.

edit: kristal bağladım, değişiklik yok...

muhittin_kaplan

xtall a gerek yok. ama isis te girdiğin cry değeri ile programdai aynı olmalı ki değerlerin tutsun.
Oran nedir ? ben resimden göremiyorum.

mur@t

#6
Alıntı yapılan: muhittin_kaplan - 21 Şubat 2013, 15:55:09
xtall a gerek yok. ama isis te girdiğin cry değeri ile programdai aynı olmalı ki değerlerin tutsun.
Oran nedir ? ben resimden göremiyorum.

Hangi oran?

prescaler 1:2 tmr0



muhittin_kaplan

Yok Hocam Olması gerekenle, Ölçtüğün değer arasındaki oran yani kısaca ölçtüğün değer nedir.

mur@t

Karedalga sinyalin periyotu 20 mikrosaniye olmalı, ben skopta 37mikrosaniye ölçüyorum.


blacklogic

Yazdığın dilin kendi içindeki gecikmesinden kaynaklanıyordur. Hassas zamanlama işlerinde assembly kullanımını öneriyorlar bu yüzden.