Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: 0ankara6 - 14 Nisan 2006, 21:29:23

Başlık: Zamani iki tusla Ayarlanabilir Pulse??
Gönderen: 0ankara6 - 14 Nisan 2006, 21:29:23
arkadaslar bir proje icin Zamani iki tusla Ayarlanabilir Pulse(20ms.....200ms)
tek portdan programlamam gerekiyor. Tek basmada 10ms hassaslikta zamanlar degisecek. Ricam daha once boyle bir sey yapan varsa bana BASIC veya C kodunu gösterebilirmi??
Cok teşekkürler
Başlık: Zamani iki tusla Ayarlanabilir Pulse??
Gönderen: Klein - 14 Nisan 2006, 23:05:30
Doğrudan kod göndermek pek adetim değil. ama arada bir de yaparım. (nedenini bilmiyorum) aşağıya fikir olması açısından bir kod yazıyorum. belki  dikkatsizlik sebepli hatalar olabilir. ama zaten sadece fikir olsun.

#define key p1.0
#define pulseout p1.1

unsigned char keystate=0;
unsigned char pulsestate=0;
unsigned char pulsedelay=0;
unsigned int pulsetemp=0;

void main(void){

if(key) keystate=1; // basit bir debounce. debounce bayrağını indir tuşa basılmadı
if(keystate && !key){ // tuşa basılmışsa ....
  keystate=0;          // debounce bayrağını çek. tuşa basıldı
  pulsestate=1; // eğer timer vs.. kullanırsanız diye pulse durumunu kontrol bayrağı
  pulsedelay +=10; // istediğiniz bir artırma değeri
  pulseout=1;  // pals çıkışını aktif et
  pulsetmp=pulsedelay*10;// istediğiniz zamana göre bir çarpan
 while(pulsetemp--); // zaman dolana kadar bekle
 pulseout=0; // pals çıkışını pasif et
}


}


Not: kullanacağın işlemcinin bit desteği olmazsa bit değişkenler işlemi yavaşlatır. o yüzden bayrakları byte tanımladım. istersen bit yapabilirsin.
Başlık: Zamani iki tusla Ayarlanabilir Pulse??
Gönderen: 0ankara6 - 15 Nisan 2006, 13:20:30
teşekkürler klein, isime yarayacak sanirim