Opcode error

Başlatan TheHowitzer, 27 Ocak 2015, 03:42:23

TheHowitzer

Forumun "başlangıç" sayfasını okudum. Yeniyim. İlk basit projemi yapmaya çalışıyorum. Fakat buna rağmen bir şeyleri anlayamıyorum ve devreyi bir türlü çalıştıramıyorum.
Bir kitap üzerinden ilerlemeye çalışıyorum. Kodu aşağıda verdim.
Sürekli "Illegal Opcode pic16f88" diyor.
Onu sildiğimde "Illegal Opcode INTRC" diyor.
Tüm bu Assembly satırını siliyorum. Ve LED ışığı yanıp sönmüyor, yalnızca yanıyor.
Gerçekten ne yapmalıyım bilemedim. Çok basit bir soru muhtemelen, belki de forumu kirletecek şekilde basit. Ama muhtemelen elzem bir şeyi bilmiyorum ve bunu bana öğretirseniz ben de yoluma devam etmek isterim.
Kod:

@ DEVICE pic16f88, INTRC_OSC_NOCLKOUT

TRISB = %11110111
SYMBOL Led = PORTB.3

Program:
    Low Led
    Pause 500
    High Led
    Pause 500
   
GOTO Program   


Saygılar, şimdiden teşekkürler

ete

Başlangıç kısmını okudum deyince tam olarak nereyi okudun pek anlaşılmıyor.
Aşağıda verilen linki mutlaka okuman gerekiyor.
http://etepic.com/index.php/topic,300.0.html
BAsic de program yazmak için öncelikle bir arayüz programına ihtiyacın vardır. Bu program Micro Code Studio dur. Kısa adı MCS dir ve bu ad kullanılır genellikle.
MCS sana yalnızca programı yazabileceğin bir rotamı sağlar. Önce boş bir ekran verir. Ekran üsütünde  bir kutu içinde işlemci isimleri yer alır. O kutuya tıklayarak öncelikle çalışacağın işlemciyi listeden seçmen gerekiyor. 16F88 işlemcisini listenin ortalarında bulup orada kalmasını sağladıktan sonra,

O işlemciye ait sigorta ayarlarını programa eklemen gerekiyor. Bu ayarlar kullandığın PC nin 32 bit yada 64 bit bir makina olmasına göre değişir. Artık yeni nesil hep 64 bit olduğu için 64 bite göre açıklama yapacağım. 32 bit için linkteki açıklamaları okursun.

Programın başına aşağıdaki sigorta ayarlarını ekle.
@ __config _CONFIG1, _INTRC_IO & _WDT_OFF & _MCLR_OFF & _LVP_OFF & _CPD_ON & _BODEN_OFF & _CP_ALL & _WRT_PROTECT_ALL & _CCP1_RB3
@ __config _CONFIG2, _IESO_OFF & _FCMEN_OFF

Şimdi işlemci hızını belirlemek amacı ile şu satırı programa ekle

Define OSC 4   'bu komut işlemcinin 4 Mhz hızda çalışacağını söylüyor.

Bu işlemcide dahili OSC birden fazla frekansa sahip olduğu için 4 Mhz olacağını işlemciye söylemek gerekir. Bunu OSCCON registeri yapar. Bu nedenle programa şu komutu eklemelisin.
OSCCON=%01100001   
Şimdi sıra geldi işlemci özel registerlerini giriş çıkış pinlerini ayarlamaya,
Bu işlemcide A portu ve B portu mevcut. Sen B portundan PORTB.3 pinini çıkış olarak kullanacaksın. A portunu kullanmasan bile ayarlamasını yapmanda yarar var.
PORTA=0:TRISA=%00000000  'önce portu sıfırladık sonra pinleri çıkış olarak ayarladık.  TRIS registerinde "0" yerine "1" verilirse ilgli pin giriş olarak ayarlanmış olacak idi.
PORTB=0:TRISB=%00000000 benzer işlemi B portu içinde yapmış olduk.
Bu işlemcide A portunda birinci özellik olan KOMPARATÖR özelliği vardır. Bunu kullanmayacağımız için CMCON=7 komutunu vererek komparatör özelliğini iptal etmemiz doğru olur.
Yine işlemcide A portu ikincil özellik ANALOG pinlerdir. Bu pinleri digital yapmak için ANSEL registeri kullanılır.
ANSEL registerinde hangi bit 1 ise ona karşılık gelen pin analog olur. Biz digital kullanacağız yada en azından analog hiç kullanmayacağız. O halde ANSEL=%00000000 verilmesi gerekiyor.
Daha sonra Sembol ve varsa değişken tanımlamamızı yaparız.
SYMBOL Led = PORTB.3
Bütün bunları yaptıktan sonra bu register atamalarını işlemci yapabilsin diye ona biraz zaman tanımak gerekiyor Bunun için başlamadan önce programa;
PAUSE 200 gibi 200 ms lik bir gecikme ekliyoruz.
Artık asıl programa geçebiliriz. Bir BASLA etiket ismi altında komutlarımızı yazıyoruz.

BASLA:
    Low Led
    Pause 500
    High Led
    Pause 500
   
GOTO BASLA
Programı toparlarsak aşağıdaki gibi bir şey olacaktır. Program yazarken bazı olması gerekenleri koymadan program yazmayın. Bunları yazmaya üşenmeyin. Her zaman tek satırlık program bile olsa en azından baş tarafı tam olsun. Sonra rahat edersiniz.
Mesajlarda programlar için Code TAG kullanın yukarıda yer alan "#" butonu bunu size sağlar.

@ __config _CONFIG1, _INTRC_IO & _WDT_OFF & _MCLR_OFF & _LVP_OFF & _CPD_ON & _BODEN_OFF & _CP_ALL & _WRT_PROTECT_ALL & _CCP1_RB3
@ __config _CONFIG2, _IESO_OFF & _FCMEN_OFF
Define OSC 4
OSCCON=%01100001 
PORTA=0:TRISA=%00000000
PORTB=0:TRISB=%00000000
CMCON=7
ANSEL=%00000000
SYMBOL Led = PORTB.3
PAUSE 200
BASLA:
    Low Led
    Pause 500
    High Led
    Pause 500
   
GOTO BASLA


Hepsi bu kadar
Ete

Powered by EzPortal