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
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.
teşekkürler klein, isime yarayacak sanirim