pic ile kare dalga saymak

Başlatan microman, 23 Nisan 2008, 14:18:54

microman

merhaba,
amacım motor konum tesbiti yapmak. iki adet encoder var ve iki farklı motor çalıştığı zaman bu encoderlardan kare dalga alıyorum. pic ile bu kare dalgaları kaçırmadan sayarak istenilen değere gelindiğinde durdurmak. bu büyük bir sistemin küçük bir parçası yani pic 'in yapması gereken daha bir çok iş var, bu yüzden bu şekilde kare dalga saymayı yazılımsal olarak değilde donanımsal olarak nasıl yaparım. Capture/compare modülünü bu iş için kullanabilirmiyim (tabi iki farklı kare dalga girişi için)? Capture/Copmare modülü tam olarak hangi iş için kullanılıyor?

iyonosfer

kare dalga sinyalini pic'in external interrupt pinine bağla. böylece external interrupt rutininde kare dalgayı kaçırmadan saydırabilirsin. External interrupt düşen kenar veya çıkan kenar olarak ayarlanabiliyor

CCS-C için örnek şablon

long darbe_sayisi

#int_ext
ext_isr()
{
 darbe_sayisi++;
}
void main ()
{
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
.
..
if(darbe_sayisi == 1000)
 {
  darbe_sayisi = 0;
  ..
  ..
 }
..
..
}

gibi olabilir. Kolay gelsin
Blog Sayfam: www.teknobakis.com

tyildizak

T0CKI pininden TMR0 ile sayabilirsin, bu arada pic başka komutlar işleyebilir.

https://www.picproje.org/index.php/topic,19452&highlight=