Görünüşe göre CcsC kullanıyorsun,
devam edeceksen Serdar Çiçek hocanın kitabını edin çok rahat edersin.
Mcu çalışma frekansı, timer ve pwm ayarları konularına bakmalısın.
Özellikle bu ayarları CcsC nin Project Wizard menüsünden yeni proje oluşturarak yapmanda fayda var.
Birde kullandığın mcu nun datasheet inde Mcu çalışma frekansı PLL ayarları ve
pwm timer kısmında hangi mcu çalışma frekansı ve modunda ne pwm değeri üretebileceğin kısımlarını imcelemen gerekiyor.
Ötnek olarak istediğin ayarlar şu oluyor,
derleme sonrası CcsC ide uyarı kısmında Pwm in ne hata ile üretildiğinide yazar misal 38.225 kHz gibi birşey der.
Kod:
#include <kullandığın mcu neyse.h>
#fuses hs,nowdt,put,noprotect
#use delay(crystal=20MHz,clock=20MHz)
#use pwm (PWM1, FREQUENCY = 38KHz, DUTY = 50, PWM_OFF)
setup_oscillator(OSC_20MHZ | OSC_PLL_OFF);
Neden 38 kHz taşıyıcı kullanayım kısmı ayrı bir konu.
Temel mantığı şu 96.0 MHz de bir radyo kanalı 96.5 de başka bir radyo kanalı var,
işte bir çok kanal aynı ortamda aynı anda yayın yapabiliyor.
38kHz de bir kumanda, 125 kHz de başka bir kumanda birbirlerine ilişmeden kullanılabilir.
Daha başa dönsek ben hiç taşıyıcı frekans kullanmak istemiyorum desen,
ir led ışık veriyorsa taşıyıcılı sistemdeki 38kHz var
ir led sönükse taşıyıcılı sistemdeki 38kHz yok anlamına gelsin desek
burada arkadaşlarında bahsettiği gibi floresan lamba güneş vs. gibi başka kaynaklardan yayılan ir ışımanın sistemi çom rahat kullanılamaz hale getirmesi durumu oluşuyor.
Ayrıca taşıyıcısız iletişim sistemli farazi bu ortamda
başka hiç bir frekansta hiç bir ir verici alıcı çalışamaz hale gelir.
Ayrıca alıcı hazır göz denen TK19 gibi modüller var
sistem zaten önceden tasarlanmış bunlar belirli frekanslar için üretilmiş.