ercanatnr
Üye
- Katılım
- 19 Ara 2010
- Mesajlar
- 290
- Puanları
- 1
Merhaba başlıkta da belirttiğim gibi pic ile DTMF kontrol devresi yapmaya çalışıyorum. Aşağıdaki kodlar ile
1 Nolu tuşa basınca 1.Röle Çekiyor.
2 Nolu tuşa basınca 1.Röle Bırakıyor.
3 Nolu tuşa basınca 2.Röle Çekiyor
4 Nolu tuşa basınca 2.Röle Bırakıyor.
Bahsettiğim kodlar aşağıda (tek buton ile komut verilen)
Bu kodlarda herhangi bir sıkıntım yok. Ancak benim yapmak istediğim devre şu şekilde çalışmalı mesela röleleri 2 tuşla kontrol etmeliyim.
ÖRN:
*1 ile 1. röle çeksin
#1ile 1. röle bıraksın
Bunu yapmak istedim ancak yapamadım. Pice gelen bu 2 bilgiyi nasıl okumalıyım. Aklıma if içine başka bir if fonksiyonu açmak geldi ama sağlıksız olur gibime geldi yardımcı olursanız sevinirim.
1 Nolu tuşa basınca 1.Röle Çekiyor.
2 Nolu tuşa basınca 1.Röle Bırakıyor.
3 Nolu tuşa basınca 2.Röle Çekiyor
4 Nolu tuşa basınca 2.Röle Bırakıyor.
Bahsettiğim kodlar aşağıda (tek buton ile komut verilen)
Kod:
#include <16F628A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(int=4000000)
#int_EXT
void EXT_isr(void)
{
if(input(pin_b1)==1 && input(pin_b2)==0 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_high(pin_a0);
}
if(input(pin_b1)==0 && input(pin_b2)==1 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_low(pin_a0);
}
if(input(pin_b1)==1 && input(pin_b2)==1 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_high(pin_a1);
}
if(input(pin_b1)==0 && input(pin_b2)==0 && input(pin_b3)==1 && input(pin_b4)==0)
{
output_low(pin_a1);
}
}
void main() {
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_4MHZ);
while(TRUE){
//TODO: User Code
}
}
Bu kodlarda herhangi bir sıkıntım yok. Ancak benim yapmak istediğim devre şu şekilde çalışmalı mesela röleleri 2 tuşla kontrol etmeliyim.
ÖRN:
*1 ile 1. röle çeksin
#1ile 1. röle bıraksın
Bunu yapmak istedim ancak yapamadım. Pice gelen bu 2 bilgiyi nasıl okumalıyım. Aklıma if içine başka bir if fonksiyonu açmak geldi ama sağlıksız olur gibime geldi yardımcı olursanız sevinirim.