Estağfurullah hocam... Daha usta olabilmem için çok zamana ihtiyacım var...
Eğer yanlış anlamazsanız, küçük bir eleştirim ya da tavsiyem olacak bu konuda...
Sizin de bildiğiniz üzere; 16F877'nin PWM üretebilmek için 2 adet CCP kanalı var (RC1 ve RC2)... PWM frekansını bu kanallardan almamışsınız, kısacası donanımsal değil yazılımsal PWM üretmişsiniz. Bu durum; PIC'in PWM üretebilmek için diğer işleri bırakıp yazdığınız PWM koduna sürekli bakması anlamına geliyor. Bu da ciddi zaman kaybı olarak algılanabilir kanımca...
İkinci olarak, PWM kanalını ses katı için kullandığınızı belirtmişsiniz, ancak şemaya baktığımda RC1 ya da RC2 değil, RC0 kanalını kullanmışsınız. Yani CCP birimini kullanmamışsınız.
Belki geliştirdiğiniz kod hakkında yanılıyor olabilirim. Ancak bu şekilde olsaydı, ADC okuma işlemleri için çok daha fazla zaman kazanma imkanınız doğardı diye düşünüyorum.
Yazdıklarımın eleştiri olarak ya da yanlış anlaşılmaması ve projenizin en iyi duruma, en kısa zamanda gelmesi dileklerimle...
Tekrar başarılar dilerim... Saygılarımla...