Zamani iki tusla Ayarlanabilir Pulse??

Başlatan 0ankara6, 14 Nisan 2006, 21:29:23

0ankara6

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

Klein

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.

0ankara6

teşekkürler klein, isime yarayacak sanirim