16F628A dahili osilatörü kullanım sorunu

Başlatan timselsit, 20 Mayıs 2014, 01:19:26

timselsit

Merhaba arkadaşlar,

Pic16f628a mikrodenetleyicisinde dahili osilatör kullanmak istiyorum. Microcode studioda pic basic pro ile yazdığım kodu save edip compile dediğimde .asm dosyası ve .hex dosyasının oluşturulması sırasında hata alıyorum. Bunu nasıl çözebilirim?

Dosyaya bu kodları yazmam gerekiyo diye biliyorum ama bu kodları ekleyince anlatmış olduğum hatayı alıyorum.


@ DEVICE pic16F628
@ DEVICE pic16F628, WDT_off
@ DEVICE pic16F628, PWRT_On
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16F628, MCLR_off
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT

AKIL


OG

MCS çoktandır kullanmıyorum, üstte menülerdede işlemci seceneği vardı. Farklı işlemci secilmisse hata verebilir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ipek

MCS 'de yukarıda target processor yazan görünen,yani yukarı kısıma baktığında 16F628 yazan butona tıkla oradan işlemci seçebilirsin.

Mucit23

İşletim sistemin 64 Bitmi? PBP sorununa benziyor.

EGE

Aldığınız hata mesajını yazın lütfen.

timselsit

Cevaplarınız için teşekkürler. Üst taraftan 16f628a yı seçiyorum. Kodu 16f628a yapınca da çalışmıyor.

@Mucit23 evet win8 64bit kullanıyorum.

MC_Skywalker

PICBASIC versiyonunuz yazmamışsınız. 3.0 ve üzeri kullanıyorsanız

@device


kullanılmamaktadır. aşağıdaki gibi yapılandırma kullanmanız gerekmete.

#config
   __CONFIG _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _CP_OFF & _XT_OSC
#endconfig


ete

Hem PBP kullanıp hemde 64 bit makinan var ise aşağıdaki linklerde yazılanları dikkatle okuyup uygulaman gerekiyor.

http://etepic.com/index.php/topic,300.0.html

http://etepic.com/index.php/topic,1687.0.html

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

timselsit

Cevaplarınız için teşekkürler,

@MC_Skywalker 2.6 versiyonunu kullanıyorum.

@ete linkler için sağolun hocam ben de sizin derslerinizle başladım pbp ye  :) paylaştığınız linkleri inceliycem. Tekrar teşekkürler.

timselsit

@ete hocam 32bit bilgisayarımda da aynı hatayı verdi. illegal opcode hatası veriyor. :o

timselsit

pbp kodunu yollasam dahili osilatör açık olacak şekilde ayarlayıp .hex dosyasını yollayabilecek biri var mı?

timselsit


Maxim


timselsit

#14
@Maxim hocam sagolun bunları 16f628a için dahili osilatör açık olacak şekilde derlerseniz memnun olurum tekrar teşekkürler  :)

hocam bir de hangi programla nasıl derlediğinizi de söyliyebilir misiniz?

(Not : win7 32bit bilgisayarım da var onda microcode studio 2.6 var.)


Kod 1:

TRISA=%00001111
TRISB=%00000000
PORTA=0
PORTB=0

CMCON=7
T2CON =%00000100
PR2=49

DUTY_HAM VAR BYTE
AIN_BIR VAR PORTB.5
AIN_IKI VAR PORTB.4
BIN_BIR VAR PORTB.6
BIN_IKI VAR PORTB.7



TEKRAR:
IF PORTA=%00000000 or PORTA=%00000011 or PORTA=%00001100 THEN    ' yon yok
DUTY_HAM=0
AIN_BIR=0
AIN_IKI=0
BIN_BIR=0
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000101 THEN    ' ileri ve saga git
DUTY_HAM=120
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00001001 THEN    ' ileri ve sola git
DUTY_HAM=80
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000110 THEN    ' geri ve saga git
DUTY_HAM=120
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00001010 THEN    ' geri ve sola git
DUTY_HAM=80
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00000001 THEN    ' ileri git
DUTY_HAM=120
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000010 THEN    ' geri git
DUTY_HAM=120
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00000100 THEN    ' saga git
DUTY_HAM=60
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00001000 THEN    ' sola git
DUTY_HAM=60
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF


ATLA:
CCP1CON.4=DUTY_Ham.0
CCP1CON.5=DUTY_Ham.1
CCPR1L=DUTY_Ham>>2

CCP1CON.2=1
CCP1CON.3=1
GOTO TEKRAR
END



Kod 2:

TRISA=%00001111
TRISB=%00000000
PORTA=0
PORTB=0

CMCON=7
T2CON =%00000100
PR2=49

DUTY_HAM VAR BYTE
AIN_BIR VAR PORTB.5
AIN_IKI VAR PORTB.4
BIN_BIR VAR PORTB.6
BIN_IKI VAR PORTB.7


TEKRAR:
IF PORTA=%00000000 or PORTA=%00000011 or PORTA=%00001100 THEN    ' yon yok
DUTY_HAM=0
AIN_BIR=0
AIN_IKI=0
BIN_BIR=0
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000101 THEN    ' ileri ve saga git
DUTY_HAM=80
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00001001 THEN    ' ileri ve sola git
DUTY_HAM=120
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000110 THEN    ' geri ve saga git
DUTY_HAM=80
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00001010 THEN    ' geri ve sola git
DUTY_HAM=120
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00000001 THEN    ' ileri git
DUTY_HAM=120
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

IF PORTA=%00000010 THEN    ' geri git
DUTY_HAM=120
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00000100 THEN    ' saga git
DUTY_HAM=60
AIN_BIR=0
AIN_IKI=1
BIN_BIR=0
BIN_IKI=1
GOTO ATLA
ENDIF

IF PORTA=%00001000 THEN    ' sola git
DUTY_HAM=60
AIN_BIR=1
AIN_IKI=0
BIN_BIR=1
BIN_IKI=0
GOTO ATLA
ENDIF

ATLA:
CCP1CON.4=DUTY_Ham.0
CCP1CON.5=DUTY_Ham.1
CCPR1L=DUTY_Ham>>2

CCP1CON.2=1
CCP1CON.3=1
GOTO TEKRAR
END