Pic Basic de device tanımlamaları gerekli mi?

bolanka

Üye
Katılım
20 Nis 2008
Mesajlar
92
Puanları
1
Yaş
39
Arkadaşlar içinden çıkamadığım bir sorun var. Çok araştırdım bulamadım. Sonunda buraya sormaya karar verdim. Çizgi izleyen robot yapıyorum şuan.. Programlama aşamasında takıldım. Elimdeki program şu:

Kod:
;***GIRISLERI  TANIMLADIK***********************************************
INPUT PORTB.0 ;SOLDAKI CNY70
INPUT PORTB.1 ;ORTADAKI CNY70
INPUT PORTB.2 ;SAGDAKI CNY70
;***ÇIKISLARI TANIMLADIK***********************************************
OUTPUT PORTB.3 ;SOL MOTOR ILERI
OUTPUT PORTB.4 ;SOL MOTOR GERI
OUTPUT PORTB.5 ;SAG MOTOR ILERI
OUTPUT PORTB.6 ;SAG MOTOR GERI

;***ISLEM KOLAYLIGI ICIN PORT ISIMLERINI SEMBOLLERE DONUSTURDUK********
SYMBOL SOLCNY =PORTB.0
SYMBOL ORTACNY =PORTB.1
SYMBOL SAGCNY =PORTB.2
SYMBOL SOLILERI=PORTB.3
SYMBOL SOLGERI =PORTB.4
SYMBOL SAGILERI=PORTB.5
SYMBOL SAGGERI =PORTB.6
;***ILK HAREKET********************************************************
BASLANGIC:
GOTO DUZGIT
;***ANA DONGU**********************************************************
ANA:
IF SOLCNY=1 THEN SOLA_DON ;EGER SA DISARI ÇIKTIYSA SOLA DÖN
IF SAGCNY=1 THEN SAGA_DON ;EGER SOL DISARI ÇIKTIYSA SAA DÖN
IF ORTACNY=1 THEN DUZGIT ;EGER ORTA BEYAZI GORUYORSA DÜZ GT
GOTO ANA
;***ALT RUTINLER*******************************************************
SOLA_DON:
HIGH SAGILERI ;YALNIZ SAG MOTORU ÇALISTITIRSA SOLA DONER
LOW SAGGERI
LOW SOLILERI
LOW SOLGERI
GOTO ANA ;ANA PROGRAM BLOGUNA GERI DONER
SAGA_DON:
HIGH SOLILERI ;YALNIZ SOL MOTORU ÇALISTITIRSA SAGA DONER
LOW SOLGERI
LOW SAGILERI
LOW SAGGERI
GOTO ANA ;ANA PROGRAM BLOGUNA GERI DONER
DUZGIT:
HIGH SOLILERI ;HER IKI MOTORU DA ÇALISTITIRSA DUZ DER
HIGH SAGILERI
LOW SOLGERI
LOW SAGGERI
GOTO ANA ;ANA PROGRAM BLOGUNA GERI DONER
END



Bu programı odtünün sitesinden almıştım. MicroStudio ile direkt hex dosyasına dönüştüreyim mi yoksa programın başına DEVICE tanımlamaları yapmak mı gerekiyor?

Kullanacağımız pic16f628 device tanımlamaları şu şekilde sanırım:

Kod:
[B]@ DEVICE pic16F628
@ DEVICE pic16F628, WDT_ON
@ DEVICE pic16F628, PWRT_ON
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16F628, MCLR_ON
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  ‘XT_OSC - HS_OSC –[/B]

Ne yapmalıyım arkadaşlar? Device tanımlamaalrını eklersem hata alıyorum.
 
DEVİCE tanımlamaları yapmalısın yoksa problemle karşılaşırsın. Eğer 16F628 kullanıyorsan kesin kullanmalısın.
 
Ayarları programa eklemek gibi bir zorunluluk yok. Pic basic pro klasöründe 16f628.inc dosyasını açın, derleyici oradaki fuse ayarlarını kullanır kullanır, o kısımda değiştirebilirsiniz:

Kod:
        NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62x.INC'   ; PM header
        device  pic16F628, xt_osc, wdt_on, pwrt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628, r = dec, w = -302
        INCLUDE "P16F628.INC"   ; MPASM  Header
[COLOR=red]        __config _XT_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF[/COLOR]
        NOLIST
    endif
        LIST
 
Sağolun arkadaşlar..

DEVİCE tanımlamaları yapmalısın yoksa problemle karşılaşırsın. Eğer 16F628 kullanıyorsan kesin kullanmalısın.​
Ama hata alıyorum.

Ayarları programa eklemek gibi bir zorunluluk yok. Pic basic pro klasöründe 16f628.inc dosyasını açın, derleyici oradaki fuse ayarlarını kullanır kullanır, o kısımda değiştirebilirsiniz:
Dostum bana eklem diyorsun yani. pic16f628 i mcstudio da seçtiğimde bu kodları otomatik olarak ekler mi?
 
arkadaşım bu TRISLERİ PORTLARI ve değişkenleride doğru bir şekilde yaptın mı

dostum 16f877 kullansan daha iyi değilmi daha kullanışlı bence
 
Moderatör tarafında düzenlendi:
dostum 16f877 kullansan daha iyi değilmi daha kullanışlı bence​

Pic programlamada başlangıç seviyesindeyim. O yüzden hazır programa mecburum şuan.
 
Aldığınız hatayı veya ekran görüntüsünü buraya eklerseniz daha iyi olur,ayrıca fused ayarlarındaki wdt_on seceneğinide off yapın,bir amatör için sorun çıkartabilir.
 
Tüm cevap veren arkadaşlara teşekkürler. Program kodlarında device tanımlamalarıyla uğraşmıyorum. Pici programlarken Configuration seçeneklerinde osilatör tipini ayarlıyorum. Sorun kalmıyor.
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,304
Kullanıcılar
449,849
Son üye
cagan20

Yeni konular

Geri
Üst