Furkan KELEŞOĞLU
Aktif Üye
- Katılım
- 12 Ekim 2019
- Mesajlar
- 497
Yarım saniye 500mS ( Mikro Saniye ) Eder. Fakat Burada donanımdan farklı başka bir şey giriyor işin İçine Bu Sinyali üretecek Algoritma lazım. Yani yarım saniye 900Hz yarım saniye 600hz . ve ayrıca bunuda sinüs olarak üretecek. 877A bu işte zorlanabilir gibi. Hatta yetersiz kalabilir cünkü kısıtlı bir zamanda ciddi bir iş yükü oluşuyor. Bundan sonrası artık size kalmış. Burada aslında cabucak deneme arge yapıp bakmak lazım. eğer yetersiz geliyorsa hemen yüksek hıza sahip başka bir Pice geçilmeli diye düşünüyorum.
500mS de 900 hz üretmek demek saniyede 1.8Khz demektir. ee bunuda dk ya vurursan 1.8khz*60=108 khz Şimdi 900hz vermemin sebebi 2 frekansta en yüksek olan bu şimdi. bakalım pic 108khz frekansı cıkartabilirmi. Evet bakıyoruz % lik hatayı göz önüne alırsak cıkartabiliyormuş.
Ama hemen tamamdır dememek lazım. bu hata teorik pratikte farklı sorunları beraberinde getirebilir. Ayrıca bu sadece kesme yapmayacak Sinüs periyodunu bu zamanda üretmeye calışacak bunuda göz önüne alırsak frekans düşecektir.
Frekansı ayarlamak kolay timer kesmesine bir counter kurularak frekans ayarlanabilir. mesela
Ama dediğim gibi şunları göz önüne almak lazım.
- Frekansı değiştirken yapacağı işler için harcıyağı cycle
-sinüs periyodunu üretebilmek için harcıyağı zaman
-Reload gibi zaman kayıpları
Bunları göz önüne alınca calculatorun cıkardığı % lik hata pratikte cok fazla yükselecektir.
500mS de 900 hz üretmek demek saniyede 1.8Khz demektir. ee bunuda dk ya vurursan 1.8khz*60=108 khz Şimdi 900hz vermemin sebebi 2 frekansta en yüksek olan bu şimdi. bakalım pic 108khz frekansı cıkartabilirmi. Evet bakıyoruz % lik hatayı göz önüne alırsak cıkartabiliyormuş.
Ama hemen tamamdır dememek lazım. bu hata teorik pratikte farklı sorunları beraberinde getirebilir. Ayrıca bu sadece kesme yapmayacak Sinüs periyodunu bu zamanda üretmeye calışacak bunuda göz önüne alırsak frekans düşecektir.
Frekansı ayarlamak kolay timer kesmesine bir counter kurularak frekans ayarlanabilir. mesela
Kod:
if(counter > 900 && Frekans = 0)
{
counter=0; // counteri sıfırla
Frekans=1;
// 900 hz olduğuna göre şimdi 600 hz üretilecek
// burayada timer donanımının yarım saniyede 600 hz üretebilmesi için gereken
// preload gibi değerleri girip timeri yeniden yapılandırıp calıştıracak kodu yazmak lazım.
}
else if (counter > 600 && Frekans = 1)
{
counter=0;
Frekans=0;
// Buurayada tekrardan 900 hz üretebilmesi için gereken yapılandırmayı yazmamız lazım.
// aynı üstte acıkladığım gibi. Frekans değişkeni oluşturmamızın sebebi Hangi
// frekansı üreteceğini anlatmak için. yoksa habire 900 hz üretip durur. yarım saniyede.
}
Ama dediğim gibi şunları göz önüne almak lazım.
- Frekansı değiştirken yapacağı işler için harcıyağı cycle
-sinüs periyodunu üretebilmek için harcıyağı zaman
-Reload gibi zaman kayıpları
Bunları göz önüne alınca calculatorun cıkardığı % lik hata pratikte cok fazla yükselecektir.