C

aramalı hırsız alarmı

Başlatan ck_46, 09 Nisan 2014, 13:02:37

ck_46

ete hocam dtmfout komutu kullanarak 16f628a ile aramalı hırsız alarmı yapıyorum fakat  pic 4 mhz ve 12 mhz de çalışıyor ama 20 mhz de çalışmıyor bu konuda söylediğiniz tavsiyeleri okudum denedim besleme bacaklarına kondansatör bağladım ama olmadı kristali değiştirdim yine olmadı sizce bu neden kaynaklanabilir yardımcı olursanız sevinirim!!!proje dosyalarını yüklüyorum.

ete

Olsa olsa programda hiç sigorta ayarı verilmemiş. Ondan olabilir.
Bütün kaynaklar DTMFOUT komutlarının düşük frekanslarda düzgün çalışmadığını söylüyor.
Ben fiziki olarak denemedim hiç o yüzden emin değilim ama 4-8Mhz arasında osilatör seçeneği olarak Sigorta ayarlarında XT_OSC seçilir bunun üzerine çıkılınca HC_OSC seçmek gerekir.
ANlaşılan sen programlayıcından manuel giriyorsun yada belkide hiç girmiyorsun programlayıcı default değerleri yüklüyordur.
Şayet öyle ise 4-8 Mhz lerde sistem çalışır ama 20 Mhz de HS_OSC seçeneğinin seçilmesi gerektiğinden çalışmayabilir.

Bir diğer sebep de işlemci seçiminden kaynaklanabilir. 16F628A serisi 20 Mhz de direk çalışabilir. Ancak sonunda A olmayan seri için direk 20 Mhz lik entgere satın alman gerekir. Bu entegrelerin isimlerinin sonunda /04P gibi ifadeler vardır ve bu onun 4 Mhz de çalışabileceğini gösterir. 20 Mhzde çalışabilenlerde ise /20 ibaresi mutlaka olmalıdır. Yoksa entegre bir noktada mutlaka hata yapar çalışamaz 20 Mhz de. Ama A serisi 20 Mhzde çalışacak şekilde yapılmıştır.

En azından sigorta ayarlarından kaynaklanabilecek kusurları gidermek için programına aşağdaki satırları en başa ilave ediver.

@ DEVICE pic16F628
@ DEVICE pic16F628, WDT_ON
@ DEVICE pic16F628, PWRT_ON
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16F628, MCLR_OFF  'yada OFF olabilir.
@ DEVICE pic16F628, HS_OSC   '8 -20Mhz içinbu ayarlar kullanılabilir. Ama 4 Mhz için HS yerine XT_OSC yazılmalıdır.

Ete

ck_46

merhaba ete hocam cevabınız için teşekkürler söylediğiniz gibi programda ayarlar yok ama onları ekleyince derleme hatası veriyor kaldırınca tekrar derliyor.

ERROR [122] HIRSIZ.ASM 153: ILLEGAL OPCODE (PIC16F628A)
WARNING[207] HIRSIZ.ASM 153 : FOUND LABEL AFTER COLUMN 1. (DEVICE)

bunun gibi 6 tane hata veriyor.

ete

#3
Derleme işini MPASM kullanarakmı yapıyorsun? yada makinan 64 bitlik makinamıdır?
Muhtemelen öyledir. O zaman yazdığın sigorta ayarlarını sil yerine;

@ __config _HS_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
yaz.

PBP klasörü içinde yer alan 16F628A.INC dosyasını yine MCS içinde aç ve altta yer alan
__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
satırının başına, noktalı virgül (';') koyup geri kayıt et.

Sonra derlemeyi yeniden yap bakalım ne olacak.

Ete

ck_46

#4
hocam bilgisayar 64 bitlik dediğiniz gibi yaptım ama yine hata veriyor  "error: overwriting previous address contents" şeklinde "önceki adres içeri üzerine " diye.

hocam acaba config ayarlarını devre dışı bırakıp "define osc 20" şeklinde girsek olurmu ?

ete

Önce vermiyor dedin şimdi mesajı değiştirip veriyor dedin. Neler oluyor?
Bu mesaj senin PBP içindeki INC dosyasında açıklanan satırı kapatmadığını gösteriyor.
Muhtemelen 16F628A.INC dosyasındakini kapattın ama derlemeyi 16F628 ile yapıyorsun.
Bu nedenle PBP klasöründeki hem 16F628A.INC hemde 16F628.INC dosyalarındaki satırları kapatıp geri kayıt yap.

Sorun sigorta ayarında olunca satırları kapatıp derleme yapmanın ne anlamı kalırki?  Bu arabanın lastiği patlak lastiği söküp yola devam edebilirmiyim sorusu ile eşdeğer oluyor bilmem anlatabiliyormuyum.

Ete

ck_46

#6
günaydın hocam hata vermiyor dediğimde bir yanlışlık olmuştu sonradan farkettim o konuda haklısınız ikisinide kapattım kaydettim ama malesef derlemedi hatta fotoları yükleyimde bakın hocam...

ete

#7
Derlemeye çalıştığın programın son halinide buraya koy göreyim. Aslında hatayı tahmin edebiliyorum ama şimdi yazmayacağım.
Programı koy bakayım emin olunca söylerim.
Bu arada programda 16F628 için uygun olmayan bir satır var onu kapatman gerek,
'   ADCON1=7   satırı kapatılacak

CMCON=7 satırı açılacak:

Ben şimdi derledim sorunsuz derliyor.

Ete

ck_46

#8
söylediğiniz gibi ADCON1 satırı kapalı hocam programı koyuyorum

@ __config _HS_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
   
BUZZER      VAR   PORTA.0
ALARM_LED   VAR   PORTA.1
ALARM_OUT   VAR   PORTA.2
TEL_ON      VAR   PORTA.3
TEL_AUDIO   VAR   PORTA.4
PIRINPUT   VAR   PORTA.5

ROW2      VAR   PORTB.0
ROW4      VAR   PORTB.1
ROW3      VAR   PORTB.2
COL1      VAR   PORTB.3
COL2      VAR   PORTB.4
COL3      VAR   PORTB.5
ROW1      VAR   PORTB.6

TUS_DONUS   VAR   BYTE
HAFIZA_NO   VAR BYTE
DEGER      VAR BYTE
SANIYE_SAY   VAR BYTE
I         VAR BYTE

   CMCON=7

;   ADCON1=7   ; 819 ÿİÿÇÿİN
   OPTION_REG=0
      
   OUTPUT   BUZZER
   OUTPUT   ALARM_LED
   OUTPUT   ALARM_OUT
   OUTPUT   TEL_ON
   OUTPUT   TEL_AUDIO
   INPUT   PIRINPUT

   OUTPUT   ROW1
   OUTPUT   ROW2
   OUTPUT   ROW3
   OUTPUT   ROW4
   INPUT    COL1
   INPUT    COL2
   INPUT    COL3

    PORTA=0
    PORTB=0
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   HAFIZA_NO=0

MAIN_LOOP:
; ALARM KAPALI DURUMDA
   LOW ALARM_LED
   
   CALL TUSLARI_TARA
   IF TUS_DONUS=12 THEN KAYIT_MENUSU
   IF TUS_DONUS<10 THEN SIFRE_GIR_ALARM_AC   ; ÿŞÿİFRE GÿİRÿİLÿİP ALARM ÿÇALIÿŞTIRILACAK
   
   GOTO MAIN_LOOP

; ---------------------------------------------------
; ÿŞÿİFRE GÿİRÿİLÿİP ALARM ÿÇALIÿŞTIRILACAK
SIFRE_GIR_ALARM_AC:
   READ 0,HAFIZA_NO   ; ÿŞÿİFRENÿİN 1. KARAKTERÿİ
   IF TUS_DONUS<>HAFIZA_NO THEN ALARM_ACMADAN_CIK
ALARM_AC_1:
   CALL TUSLARI_TARA
   IF TUS_DONUS>9 THEN ALARM_AC_1
   READ 1,HAFIZA_NO   ; ÿŞÿİFRENÿİN 2. KARAKTERÿİ
   IF TUS_DONUS<>HAFIZA_NO THEN ALARM_ACMADAN_CIK
ALARM_AC_2:
   CALL TUSLARI_TARA
   IF TUS_DONUS>9 THEN ALARM_AC_2
   READ 2,HAFIZA_NO   ; ÿŞÿİFRENÿİN 3. KARAKTERÿİ
   IF TUS_DONUS<>HAFIZA_NO THEN ALARM_ACMADAN_CIK
ALARM_AC_3:
   CALL TUSLARI_TARA
   IF TUS_DONUS>9 THEN ALARM_AC_3
   READ 3,HAFIZA_NO   ; ÿŞÿİFRENÿİN 4. KARAKTERÿİ
   IF TUS_DONUS<>HAFIZA_NO THEN ALARM_ACMADAN_CIK
; ALARM DEVREYE ALINIYOR
   GOTO ALARM_DEVREYE_AL:

ALARM_ACMADAN_CIK:
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   GOTO MAIN_LOOP
; -----------------------------------
; ALARM 30 SANÿİYE BEKLENECEK VE DEVREYE ALINACAK
ALARM_DEVREYE_AL:
   FOR HAFIZA_NO=0 TO 50
      TOGGLE ALARM_LED
      CALL ZIRLA
      PAUSE 300
      CALL TUSLARI_TARA
      IF TUS_DONUS<10 THEN     ; BÿİR TUSA BASILMIS. ALARM ÿİPTAL
         LOW ALARM_LED
         HIGH BUZZER
         GOTO MAIN_LOOP
      ENDIF
   NEXT
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA   ; SON UYARI YAPILDI. ALARM ARTIK DEVREDE
               
   HIGH ALARM_LED
HAREKET_BEKLE:   ; ALARM AÿÇIK VE HAREKET GELENE KADAR BURADA BEKLE
   IF PIRINPUT=0 THEN HAREKET_BEKLE
   PAUSE 200
   IF PIRINPUT=1 THEN HAREKET_VAR
   GOTO HAREKET_BEKLE
; ---------------------------------------------------
HAREKET_VAR:
; HAREKET VAR ÿİSE 30 SANÿİYE BEKLENECEK
; ÿŞÿİFRE GÿİRÿİLMEZSE ALARM ÿÇALACAK VE
; TELEFONLAR ARANACAK

   SANIYE_SAY=0
   HAFIZA_NO=0
   
BEKLE_30_SN:
   SANIYE_SAY=SANIYE_SAY+1
   IF SANIYE_SAY>62 THEN GOTO SURE_DOLDU_TEL_ARA
   CALL TUSLARI_TARA
   IF TUS_DONUS<10 THEN   ; BÿİR TUÿŞA BASILMIÿŞ
      READ HAFIZA_NO,DEGER
      IF TUS_DONUS=DEGER THEN   ; TUS KARAKTERI DOÿĞRUDUR
         HAFIZA_NO=HAFIZA_NO+1
      ELSE
         HAFIZA_NO=0
      ENDIF
   ENDIF
   IF HAFIZA_NO>3 THEN MAIN_LOOP ; ÿŞÿİFRE DOÿĞRUDUR. ANA MENUYE GÿİT
   PAUSE 200
   CALL ZIRLA
   TOGGLE ALARM_LED
   GOTO BEKLE_30_SN   
; ---------------------------------------------
SURE_DOLDU_TEL_ARA:
; 1. TELEFON ARANIYOR
   HIGH ALARM_OUT   ; ALARM ÿÇIKIÿŞI VER
   
   LOW BUZZER   ; BUZZER SÿÜREKLÿİ ÿÇAL
   HIGH TEL_ON      ; TELEFON HATTI AÿÇILDI.
   PAUSE 500   
   HAFIZA_NO=4
   SANIYE_SAY=0   ; ÿŞÿİFRE ÿİÿÇÿİN KULLANILACAK

TEL_1_CEVIR:   
   READ HAFIZA_NO,DEGER
   IF DEGER>9 THEN TEL_1_BITTI
   DTMFOUT TEL_AUDIO, [DEGER]
   HIGH ALARM_LED
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO>14 THEN TEL_1_BITTI
   GOTO TEL_1_CEVIR
TEL_1_BITTI:
   FOR I=0 TO 30  ; 30 SANIYE BOYUNCA
      CALL TUSLARI_TARA
      IF TUS_DONUS<10 THEN   ; BÿİR TUSA BASMIS
         READ SANIYE_SAY,DEGER
         IF DEGER=TUS_DONUS THEN
            SANIYE_SAY=SANIYE_SAY+1
         ELSE
            SANIYE_SAY=0
         ENDIF
         IF SANIYE_SAY=4 THEN GOTO SIFRE_DOGRU_ALARM_KAPAT
      ENDIF
      HIGH ALARM_LED
      PAUSE 1000   ; TEL NO ÿÇEVRÿİLDÿİ. 1 SN BEKLE
      SOUND TEL_AUDIO,[100,10,50,10,100,10] ; BU SESi TELE VER
   NEXT
   LOW TEL_ON   ; TEL. KAPAT
   PAUSE 1000

   HIGH TEL_ON      ; TELEFON HATTI AÿÇILDI.
   PAUSE 500   
   HAFIZA_NO=15   ; 15-25 arasÿı

TEL_2_CEVIR:
   READ HAFIZA_NO,DEGER
   IF DEGER>9 THEN TEL_2_BITTI
   DTMFOUT TEL_AUDIO, [DEGER]
   HIGH ALARM_LED   
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO>25 THEN TEL_2_BITTI
   GOTO TEL_2_CEVIR
TEL_2_BITTI:
   FOR I=0 TO 30  ; 30 SANIYE BOYUNCA
      CALL TUSLARI_TARA
      IF TUS_DONUS<10 THEN   ; BÿİR TUSA BASMIS
         READ SANIYE_SAY,DEGER
         IF DEGER=TUS_DONUS THEN
            SANIYE_SAY=SANIYE_SAY+1
         ELSE
            SANIYE_SAY=0
         ENDIF
         IF SANIYE_SAY=4 THEN GOTO SIFRE_DOGRU_ALARM_KAPAT
      ENDIF
      HIGH ALARM_LED
      PAUSE 1000   ; TEL NO ÿÇEVRÿİLDÿİ. 1 SN BEKLE
      SOUND TEL_AUDIO,[100,10,50,10,100,10] ; BU SESi TELE VER
   NEXT
   LOW TEL_ON   ; TEL. KAPAT
   PAUSE 1000

   HIGH TEL_ON      ; TELEFON HATTI AÿÇILDI.
   PAUSE 500   
   HAFIZA_NO=26   ; 26-36 arasÿı

TEL_3_CEVIR:
   READ HAFIZA_NO,DEGER
   IF DEGER>9 THEN TEL_3_BITTI
   DTMFOUT TEL_AUDIO, [DEGER]
   HIGH ALARM_LED
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO>36 THEN TEL_3_BITTI
   GOTO TEL_3_CEVIR
TEL_3_BITTI:
   FOR I=0 TO 30  ; 30 SANIYE BOYUNCA
      CALL TUSLARI_TARA
      IF TUS_DONUS<10 THEN   ; BÿİR TUSA BASMIS
         READ SANIYE_SAY,DEGER
         IF DEGER=TUS_DONUS THEN
            SANIYE_SAY=SANIYE_SAY+1
         ELSE
            SANIYE_SAY=0
         ENDIF
         IF SANIYE_SAY=4 THEN GOTO SIFRE_DOGRU_ALARM_KAPAT
      ENDIF
      HIGH ALARM_LED
      PAUSE 1000   ; TEL NO ÿÇEVRÿİLDÿİ. 1 SN BEKLE
      SOUND TEL_AUDIO,[100,10,50,10,100,10] ; BU SESi TELE VER
   NEXT
   LOW TEL_ON   ; TEL. KAPAT
   PAUSE 1000

   HIGH TEL_ON      ; TELEFON HATTI AÿÇILDI.
   PAUSE 500   
   HAFIZA_NO=37   ; 37-47 arasÿı

TEL_4_CEVIR:
   READ HAFIZA_NO,DEGER
   IF DEGER>9 THEN TEL_4_BITTI
   DTMFOUT TEL_AUDIO, [DEGER]
   HIGH ALARM_LED
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO>47 THEN TEL_4_BITTI
   GOTO TEL_4_CEVIR
TEL_4_BITTI:
   FOR I=0 TO 30  ; 30 SANIYE BOYUNCA
      CALL TUSLARI_TARA
      IF TUS_DONUS<10 THEN   ; BÿİR TUSA BASMIS
         READ SANIYE_SAY,DEGER
         IF DEGER=TUS_DONUS THEN
            SANIYE_SAY=SANIYE_SAY+1
         ELSE
            SANIYE_SAY=0
         ENDIF
         IF SANIYE_SAY=4 THEN GOTO SIFRE_DOGRU_ALARM_KAPAT
      ENDIF
      HIGH ALARM_LED
      PAUSE 1000   ; TEL NO ÿÇEVRÿİLDÿİ. 1 SN BEKLE
      SOUND TEL_AUDIO,[100,10,50,10,100,10] ; BU SESi TELE VER
   NEXT
   LOW TEL_ON   ; TEL. KAPAT
   PAUSE 1000

; 4 TELEFON DA ARANDI
; ÿŞÿİFRE GÿİRÿİLENE KADAR TEKRAR TEKRAR ARA.

   GOTO SURE_DOLDU_TEL_ARA   

SIFRE_DOGRU_ALARM_KAPAT:
   LOW ALARM_OUT   ; ALARM ÿÇIKIÿŞI KPALI
   LOW TEL_ON
   LOW TEL_AUDIO
   LOW ALARM_LED
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   GOTO MAIN_LOOP
; ---------------------------------------------------
KAYIT_MENUSU:
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA

; ÿİLK OLARAK 4 HANELÿİ ÿŞÿİFRE GÿİRÿİLECEK
; ÿŞÿİFRE EEPROMUN ÿİLK 4 ADRESÿİNE YAZILACAK
   HAFIZA_NO=0
KAYIT_TUS_BEKLE:
   CALL TUSLARI_TARA
   IF TUS_DONUS>9 THEN GOTO KAYIT_TUS_BEKLE
   WRITE HAFIZA_NO,TUS_DONUS   ; 1. KARAKTER KAYDEDÿİLDÿİ
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO<4 THEN KAYIT_TUS_BEKLE
   
; ÿŞÿİFRE KAYIT ÿİÿŞLEMÿİ BÿİTTÿİ
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   
; TELEFON NUMARASI - 1 KAYDEDÿİLECEK
; TELEFON NO UZUNLUÿĞU MAX. 11 KARAKTER OLACAK
; EEPROM 4-14 ARASI
KAYIT_TEL_BEKLE_1:
   CALL TUSLARI_TARA
   IF TUS_DONUS=12 THEN KAYIT_TEL_BEKLE_1_BITTI
   IF TUS_DONUS>9 THEN GOTO KAYIT_TEL_BEKLE_1
   WRITE HAFIZA_NO,TUS_DONUS
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO<15 THEN KAYIT_TEL_BEKLE_1
KAYIT_TEL_BEKLE_1_BITTI:   ; KAYIT 11 KARAKTERDEN KISA KESÿİLDÿİ ÿİSE
   IF HAFIZA_NO<15 THEN    ; 11 KARAKTERE KADAR ESKÿİ KAYDI SÿİL
      WRITE HAFIZA_NO,255
      HAFIZA_NO=HAFIZA_NO+1
      GOTO KAYIT_TEL_BEKLE_1_BITTI
   ENDIF
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   PAUSE 1000
   CALL ZIRLA

; TELEFON NUMARASI - 2 KAYDEDÿİLECEK
; TELEFON NO UZUNLUÿĞU MAX. 11 KARAKTER OLACAK
; EEPROM 15-25 ARASI
KAYIT_TEL_BEKLE_2:   
   CALL TUSLARI_TARA
   IF TUS_DONUS=12 THEN KAYIT_TEL_BEKLE_2_BITTI
   IF TUS_DONUS>9 THEN GOTO KAYIT_TEL_BEKLE_2
   WRITE HAFIZA_NO,TUS_DONUS
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO<26 THEN KAYIT_TEL_BEKLE_2
KAYIT_TEL_BEKLE_2_BITTI:   ; KAYIT 11 KARAKTERDEN KISA KESÿİLDÿİ ÿİSE
   IF HAFIZA_NO<26 THEN    ; 11 KARAKTERE KADAR ESKÿİ KAYDI SÿİL
      WRITE HAFIZA_NO,255
      HAFIZA_NO=HAFIZA_NO+1
      GOTO KAYIT_TEL_BEKLE_2_BITTI
   ENDIF
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   PAUSE 1000
   CALL ZIRLA
   PAUSE 300
   CALL ZIRLA

; TELEFON NUMARASI - 3 KAYDEDÿİLECEK
; TELEFON NO UZUNLUÿĞU MAX. 11 KARAKTER OLACAK
; EEPROM 26-36 ARASI
KAYIT_TEL_BEKLE_3:   
   CALL TUSLARI_TARA
   IF TUS_DONUS=12 THEN KAYIT_TEL_BEKLE_3_BITTI
   IF TUS_DONUS>9 THEN GOTO KAYIT_TEL_BEKLE_3
   WRITE HAFIZA_NO,TUS_DONUS
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO<37 THEN KAYIT_TEL_BEKLE_3
KAYIT_TEL_BEKLE_3_BITTI:   ; KAYIT 11 KARAKTERDEN KISA KESÿİLDÿİ ÿİSE
   IF HAFIZA_NO<37 THEN    ; 11 KARAKTERE KADAR ESKÿİ KAYDI SÿİL
      WRITE HAFIZA_NO,255
      HAFIZA_NO=HAFIZA_NO+1
      GOTO KAYIT_TEL_BEKLE_3_BITTI
   ENDIF
   CALL ZIRLA
   CALL ZIRLA
   CALL ZIRLA
   PAUSE 1000
   CALL ZIRLA
   PAUSE 300
   CALL ZIRLA
   PAUSE 300
   CALL ZIRLA
   
; TELEFON NUMARASI - 4 KAYDEDÿİLECEK
; TELEFON NO UZUNLUÿĞU MAX. 11 KARAKTER OLACAK
; EEPROM 37-47 ARASI
KAYIT_TEL_BEKLE_4:   
   CALL TUSLARI_TARA
   IF TUS_DONUS=12 THEN KAYIT_TEL_BEKLE_4_BITTI
   IF TUS_DONUS>9 THEN GOTO KAYIT_TEL_BEKLE_4
   WRITE HAFIZA_NO,TUS_DONUS
   HAFIZA_NO=HAFIZA_NO+1
   IF HAFIZA_NO<48 THEN KAYIT_TEL_BEKLE_4
....

İlyas KAYA

Konuyla pek alakasız ama aklıma 94 yılında yaptığım 4017 entegresi ve telefon ile aramalı alarm devresi geldi.

Önce bir role çekip hattı açıyordum.
4017 sıra ile telefonun tuşlara çektiğim kabloları kısa devre ediyordu.

Güzelde çalışıyordu :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

ck_46

sağol ilyas hocam elimde bir proje var onu yapmaya çalışıyorum :).

ete hocam hatanın nerden kaynaklandığını anlayabildiniz mi ? benim paylaştığım program bu şekliyle derlenebiliyor mu hiç deneme fırsatınız oldumu hocam ?

ete

#11
Hata senden yada bilgisayarından yada ne bileyim kullandığın programlardan  kaynaklanıyor. Verdiğin programı ben derliyorum (MPASM ile) sorunsuz derleniyor. Zaten daha öncede sorunsuz derlendiğini söylemiştim.
Sende gözüken hatanın aynısını oluşturabilmek amacı ile 16F628A.INC dosyasında kapattığım satırı açarak yeniden derledim. Sende beliren hatanın aynısı oluştu. Buda şunu gösteriyor. Ya o satırı kapattıktan sonra kayıt etmeden derleme yaptın yada makinada 2 ayrı basic derleyici mevcut sen kullanmadığın basic deki INC dosyasını değiştiriyorsun. Bunun başka izah tarzı yok maalesef.

Ete

ck_46

ete hocam teşekkür ederim dediğiniz gibi hata programdaymış programı derledim 20 mhz ile çalıştırdım yardımlarınız için çok teşekkürler...

ck_46

hocam bir sorum daha olacaktı.bu devre telefon hattına bağlarken ekte yüklediğim gibi optocoupler ile yapılmış onun yerine  hat trafosu bağlasam bir problem olur mu ?

ete

Hat tarfosu ile olur ancak devrede tadilat yapmak lazım. Tadilatı bana sorma etrafta bir çok örnek var onlara bakarak bir şeyler yapabilirsin.

Ete

Powered by EzPortal