12F675 Interrupt ile uyku 2 kanal

Başlatan onurinci, 12 Eylül 2024, 03:32:46

onurinci

Hocam selam ,
 uzun bir aradan sonra iki kanallı bir şey tasarladım.radyo alıcısı PIC uyumayınca alttan ince bir enterferans üretiyor , bu yüzden uyutmaya karar verdim.

switch posizyonları hangisinden açarsam veriyi yollayıp uyku moduna girecek. diğer kanala geçmek istediğimde GPIE yoluyla uyanıp görevini ifa redip tekrar uyuyacak.

maalesef başarılı olamadım. DEBUG ile uyuduğunu gözlemledim, ama çalışmıyor.

ancak kanalları ilk gerilim verdiğimde switch hangi posizyonda ise onu atıp uyuyor, çalışırken switch'e dokunduğumda tık yok. ellerinizden öper......saygılar..

not Sim dosyasını ekledim.

alisumer

#1
kesme içinde  7.(GIE) biti yerine karıştırıp intcon.0 =0 yapıp gpio değişiklik  kesmesini kapatmışsın çıkarken de açmayı unutmuşsun Enable komutu onu geri açmaz, diğer kısımlara bakmadım eğer çalışıyorsa ilk seferinde kesmeye girer ama bir sonrakinde uyuyup kalır başka bir uyandırma yoksa
Hep meraktan

ete

#2
@alisumer,
INCON.0 biti IOC bayrak bitidir sıfırlanmasında bir mahsur yoktur.

@onurinci,
Programda ana program ile alt programlar birbiri içine geçmiş gözüküyor.
Switchin bir konumunda program sleep komutuna ulaşıyor ama ikinci konumda ulaşamıyor.
Öncelikle ;
- Zero
- One
- Enable
isimli alt programları  if-endif döngüsünün dışına çıkar. Programın En altına Disable komutundan öncesine yazabilirsin.

- End komutunu programın en sonuna yani GOTO START komutu altına yaz.

- IF-ENDIF döngülerinin içlerindeki @ Sleep komutlarını sil ve tek bir tane olacak şekilde
GOTO START komutunun bir öncesine yaz.
Ayrıca registerler kesme sonrası ayarlansın diye kesmeden çıkar çıkmaz PAUSE 10 ekle.

Karışıklık olmasın diye programın olması gereken şeklini ilişikte veriyorum.

Ete

onurinci

Hocam çok teşekkür ederim. daha sade ve anlamlı olmuş...

alisumer

#4
@ete hocam
halbuki üşenmeyip açıp baktım biliyonmu pdf ye ona rağmen flag ı okumadan geçmişim özgüven böyle zehir işte .  arada bir bakarım ben bu başlığa artık kendimi kaybetmiyim diye  :o  ;D
Hep meraktan

Powered by EzPortal