16f628a kullanarak ışık şiddeti

Başlatan ercanskose, 25 Kasım 2023, 16:33:21

ercanskose

arkadaşlar merhaba
Mikroc pro kullanarak bir led animasyonu yapmaya çalışıyorum. Yapmak istediğim şu,
devre hazır olduğu için pinlerde değişiklik yapamıyorum. RA0 pinimde 1 adet led var bu ledi yavaş yavaş şiddeti arttırarak aşağıdaki kodla yapıyorum.

for(i=1;i<255;i++){
LED1=1;
bekle_on(i); // Ton süresi kadar bekle
LED1=0;
bekle_off(i);  // Toff süresi kadar bekle
}
LED1=1;
 delay_ms(1000);

fakat bu ledi yavaş yavaş yakarken en sonunda tam parlaklıkta yanıyor.ama tam şiddete değilde yarım kısık yanmasını istiyorum. daha sonrada RB0,....,RB7 uclarımdada ayrı ayrı led var bunlarıda animasyonlu yakmak istiyorum. bu animasyon sürekli dönecek. sadece RA0 pinimdeki led sabit kalacak ama yarım ışık şiddetiyle yanacak.  bu konuda fikri olan varmı kod bloğunu nasıl yapmalıyım.
sanal PWM ile RA0 a bağlı ışığı ğı kısabiliyorum fakat o kodu while döngüsü içinde yazmam gerekiyor. while da yazıncada RB portlarındaki animasyonlar çalışırken RA PWM üretmiyor.

mehmet

F628A 'da bir adet donanımsal PWM kanalı
bulunmakta:RB3.

Bunun haricinde ancak yazılımsal PWM
yapabilirsiniz.
Timer kesmeleri konularını incelemelisiniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

ercanskose

#2
Alıntı yapılan: mehmet - 25 Kasım 2023, 17:46:49F628A 'da bir adet donanımsal PWM kanalı
bulunmakta:RB3.

Bunun haricinde ancak yazılımsal PWM
yapabilirsiniz.
Timer kesmeleri konularını incelemelisiniz.


teşekkürler donanımsal pwm i kullanamıyorum çünkü devreyi değiştirme şansım yok. yazılımsal pwm i kullanmak zorundayım RA0 pininde.
devrenin RA0 çıkışındaki ledlerin akımı fazla olduğu için ona göre devreyi tasarladım ve pcb leri hazırladım.

kısaca yapmak istediğim

RA0 pinine bağlı led kısık yanacak
RB0....RB7 ucundaki ledlere animasyon yaptıracağım.

buna göre mikroc pro da yazılmış bir koda ihtiyacım var.  pic e yeni başladığım için timer veya uart hiç kullanmadım.