Kod yazımında hata (16f84a)

apses

Üye
Katılım
20 Ara 2008
Mesajlar
6
Puanları
1
Yaş
38
Merhaba arkadaşlar benim sorunum şu bi ton kod yazdım ama compile edemiyorum çünkü bank0dan bank1 e geçemiyor program basit bir kod daha yazdım hatayı belki görürüm diye ama gene aynı şey oldu

PORTA EQU 0x05
PORTB EQU 0x06
TRISA EQU 0x85
TRISB EQU 0x86
STATUS EQU 0x03
ORG 0x00

CLRF PORTA
CLRF PORTB
BSF STATUS,5
MOVLW 0x00
MOVWF TRISA
BCF STATUS,5

MOVLW 0x03
MOVWF PORTA

END

normal şartlar altında benim bank1 e geçip trisa ya 00H değerini atarak tamamen output yapmam lazım sonra bank0 a dönüp portaya 03h atıp 0 ve 1. pinler den 1 değerini gözlemem lazım ama trisa için " Register in operand not in bank 0. Ensure that bank bits are correct." diye hata veriyor(mplab 8.10 kullanıyorum bu arada) sizce nerde bir sorun olabilir şimdiden sağolun
 
Değerli arkadaşım piclerde bank değiştirmek için illa status registerinin 5. bitini set reset etmen gerekmez.BANKSEL diye bir komut var örneğin banksel trisa dediğin zaman tris registerinin olduğu bank'a banksel porta dediğin zaman da porta nın olduğu bank'a geçiş sağlar.
Ayrıca hatırladığım kadarı ile porta portb gibi registerleri programa include dosyasını verdiğimiz zaman ayrıca equ ile tanıtmamıza gerek kalmıyor. örneğin include "p16f84a.inc" şeklinde.
MOVLW 0x00 ,MOVWF TRISA gibi bir tanımlama yerine clrf trisb diye kullanıp direk işlem yapabilirsin.
Bütün işlemlerini bitirdikten sonra programı end demeden önce en azından bir sonsuz döngüye sokmanda ayrıca fayda var.

list p=16F84A
include "p16F84A.inc"
CLRF PORTA
CLRF PORTB
BANKSEL TRISA
CLRF TRISA
CLRF TRISB
BANKSEL PORTA
MOVLW 0X03
MOVWF PORTA
DONGU
GOTO DONGU
END

Şeklinde programınızı tekrar deneyebilirmisiniz acaba.
Son olarakta altaş yayıncılık tarafından hazırlanmış çok güzel kaynaklar var sitesinde bulabilirsiniz ALTAŞ YAYINCILIK VE ELEKTRONİK pic kitapları bölümünde içerikleri incelemenizi tavsiye ederim. ekte ben birkaç uygulama dosyası verdim altaş kitaptan alıntıdır.

http://www.altaskitap.com/pdf_kart/PIC628_Uygulamalar.zip adresinden ulaşabilirsiniz....
 
Bu zaten asıl programım değil dediğim gibi sadece bank 0 dan bank 1 geçişte sorun yaşıyorum sadece sorunu daha iyi görebilmek için küçük bir assembly kod yazdım o yüzden döngüye sokmadım kütüphane olayında haklısın kütüphane kullanmayıda denedim ama gene fayda vermedi sizin attığınız koduda denedim hatalar verdi gene ve içlerinden biri gene bu register bank0 da bulunmuyr diye hata veriyor trisa ve trisb için bir türlü çözemedim sorunu :S
 
O zaman mplab derleyicinizin sürümünü değiştirin...
 
:) valla onu da denedim en son sürümü özellikle indirdim ama sorun devam etti neyse teşekkür ederim yardımlarınız için
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,606
Kullanıcılar
452,663
Son üye
Yılmaz Çetiner

Yeni konular

Geri
Üst