PicBasicPro da Timer Yardım Lütfen

Başlatan GamzeDemir, 02 Nisan 2008, 20:37:53

GamzeDemir

Merhaba arkadaslar

Ben picbasic pro da bi tmer kulllanmam lazım .. timer kesmesi ile bu yapılıyor ama timer benim programım çalışır çalışmaz mı baslıyor yani ben programın herhang bi yerinde timer ı baslatsam ve nerde ne zaman baslayacgını ben belirliyebiliyor muyum..

Yardımcı olabilecek arkadaslar lütfen örnek lerle anlatabilirler mi :oops:

ete

Timer0 sürekli çalışır ve 8 bittir. Ancak kullanacağınız zaman sıfırlarsınız ve size lazım olunca değerini okursunuz olur biter.

Timer1 ise istediğiniz zaman çalışır istediğiniz zaman durur. 16 Bitliktir.
Timer1L Timer1H registerleri kullanılarak okunur yada yazılır.

T1CON=7 dediğiniz zaman timer aktif olur.
T1CON=6 dedğiniz zaman durdurulmuş olur.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

GamzeDemir

Alıntı yapılan: "ete"Timer0 sürekli çalışır ve 8 bittir. Ancak kullanacağınız zaman sıfırlarsınız ve size lazım olunca değerini okursunuz olur biter.

Timer1 ise istediğiniz zaman çalışır istediğiniz zaman durur. 16 Bitliktir.
Timer1L Timer1H registerleri kullanılarak okunur yada yazılır.

T1CON=7 dediğiniz zaman timer aktif olur.
T1CON=6 dedğiniz zaman durdurulmuş olur.

Ete

Çok teşekkürler ;)

GamzeDemir

Ete bey peki şöyle bişey yapmak mumkun mu:

Mesela

DATAAL:

if sayac=1  then
  timer ı  baslat ve timer 300 ms sonra kesme verecek seklinde
endif

serin2 porta.2, 396,[(wait"E"),data1,data2]

ama program soyle olacak 300 ms içinde  data1="N" olursa sunları yap diyecegim ama yukardaki serin komutu "E" yi almadıgı surece program ilerlemeyecek ve kesme gelmeecek sanırım yanlış mı biliyorum
eger dogru biliyorsam çözüm ü söyleyebilirmisiniz

birde ben pic16f870 kullanacagım da  timer1 in kullanımı ile ilgili kucuk bi örnek vermeniz mümkün mü acaba ...
yani istediğim yerde timer1 i baslatacak ve istediğim zaman baslatacak şekilde.. :oops:
Çok teşekkürler
Saygılar

ete

GamzeDemir,

serin2 porta.2, 396,[(wait"E"),data1,data2]
komutundan "E" gelmedikten sonra kesme açılmayacak ise açma komutunu bu satırdan sonrasına koyarsınız olur biter.

..
..
serin2 porta.2, 396,[(wait"E"),data1,data2]
PIE1=1 'timer1 kesmesi  açıldı
INTCON=%11000000 'ilgili kesmeler açıldı
TMR1L=$84:TMR1H=$6D 'timer1' 300 ms için ön değer (28036 değeri) verildi
T1CON=%00110101'timer1 1/8 prescaler ile çalışmaya başladı.

'kesme  alt programından çıkmadan önce PIR1.0=0 şeklinde Timer1 kesme bayrağı sıfırlanacaktır.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

GamzeDemir

Alıntı yapılan: "ete"GamzeDemir,

serin2 porta.2, 396,[(wait"E"),data1,data2]
komutundan "E" gelmedikten sonra kesme açılmayacak ise açma komutunu bu satırdan sonrasına koyarsınız olur biter.

..
..
serin2 porta.2, 396,[(wait"E"),data1,data2]
PIE1=1 'timer1 kesmesi  açıldı
INTCON=%11000000 'ilgili kesmeler açıldı
TMR1L=$84:TMR1H=$6D 'timer1' 300 ms için ön değer (28036 değeri) verildi
T1CON=%00110101'timer1 1/8 prescaler ile çalışmaya başladı.

'kesme  alt programından çıkmadan önce PIR1.0=0 şeklinde Timer1 kesme bayrağı sıfırlanacaktır.

Ete

Ete bey ben sunu yapmak istiyorum dataal programımda mesela 300 ms içnde bi data almazsam programı baska bir yone yonlendirecegim ama sanırım picbasic pro da pause ve serin gb komutlar varsa onu işlemeyi bitirmeden kesme gelmiyormus yani ben biyerde boyle okumustum...Acaba bunun bi çözümü var mı..yani ben 300 ms data almazsa eger programı istediğim etikete  nasıl yonlendirecegim asm mi gommem gerekiyor :roll:

ete

Basic de komut işletimi bitmeden kesme oluşmaz. ASM kullanmanız gerek.
Ancak Serin komutunun bir de timeout seçeneği olması gerek. Onuda araştırın. Timeout da verilen süre sonunda bilgi gelmez ise program verilen etikete dallandırılabilir.


Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

GamzeDemir

Alıntı yapılan: "ete"Basic de komut işletimi bitmeden kesme oluşmaz. ASM kullanmanız gerek.
Ancak Serin komutunun bir de timeout seçeneği olması gerek. Onuda araştırın. Timeout da verilen süre sonunda bilgi gelmez ise program verilen etikete dallandırılabilir.


Ete

Yardmlarınız için teşekkür ederim..Diger arkadaslar da faydalansın diye serin2 komutun timeout lu halini ekliyorum...

SERIN2 porta.2, 396, 100, Loop, [veri] ;100 milisaniye boyunca veri
                                       ;gelmezse  Loop'a gider, gelirse veri'ye atar.

GamzeDemir

Ete bey

Peki gömmem gerekn asm kodlarını siz biliyormusunuz inanın baya aradım bulamadım :cry:

ete

Maalesef Asm kodlarını bilmiyorum. Ben çok gerekli olmadıkça Asm kullanmam. O yüzden çok tecrübeli değilim o konuda.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

GamzeDemir

Tesekkkurler acaba bilen arkadaslar buraya ekleme yapabilirlermi :cry: