Mplabx'e yeni başladım , Mplabx ile Assembly öğrenmeye çalışıyorum.
Ancak programı kullanmayı tam beceremedim , hatalar alıyorum.
Şöyle ufak bir kodum var deneme amaçlı yazılmış :
list P=16F877A
include "P16F877A.INC"
__CONFIG H'13A6' ;ICD etkin , reset'ler etkin , HS osilatör
org 0x000
;Register ayarlari
bsf STATUS,RP0 ;Portlari , ADCON1 ve Option_Reg'i içerdigi için Bank1'e geç
movlw b'00000011' ;a0 ve a1 giris , gerisi çikis
movwf TRISA
movlw 0x00 ;B portu çikis
movwf TRISB
movlw b'00001000' ;Option_Reg ile Pull-up etkin , 1:1 bölme orani
movwf OPTION_REG
movlw h'06' ;Tüm girisler Dijital
movwf ADCON1
bcf STATUS,RP0 ;Bank1'den çik
clrf PORTA ;çikislar 0
clrf PORTB
;Register ayarlari
org 0x050
BASLA
btfsc PORTA,0
goto BASLA
bsf PORTA,2
goto BASLA
END
"Clean and Build"e tıklayınca Build Successful diyor ama bu benim bir işime yaramıyor sanırım , çünkü bir dosya üretmiyor gibi.
"Make and Program Device"a tıklayınca (Simulator seçili) , simulator sekmesi altında
Alıntı YapWARN001: Failed to init toolTMR1 : Failed initialization
hatası alıyorum ve yine bir şey elde edemiyorum.
"Read Device Memory to File" seçeneği , yanlış olduğunu bilsem de , hex dosyası üretiyor , Proteus'a atınca da Retlw ile bağlantılı taşma ile WDT'ın devreye girdiğini gösteriyor.
Hatam nerede acaba?
Compiler olarak mpasm 5.42 seçili , Hardware tool ise Simulator.Device da 16f877a
x den anlamam senin dosya hex üretiyor hata yok watchdog da takılıyor config satırını dururunca düzeliyor
list P=16F877A
include "P16F877A.INC"
; __CONFIG H'13A6' ;ICD etkin , reset'ler etkin , HS osilatör
errorlevel,-302 ;error mesajlarını gösterme
org 0x000
;Register ayarlari
bsf STATUS,RP0 ;Portlari , ADCON1 ve Option_Reg'i içerdigi için Bank1'e geç
movlw b'00000011' ;a0 ve a1 giris , gerisi çikis
movwf TRISA
movlw 0x00 ;B portu çikis
movwf TRISB
movlw b'00001000' ;Option_Reg ile Pull-up etkin , 1:1 bölme orani
movwf OPTION_REG
movlw h'06' ;Tüm girisler Dijital
movwf ADCON1
bcf STATUS,RP0 ;Bank1'den çik
clrf PORTA ;çikislar 0
clrf PORTB
;Register ayarlari
org 0x050
BASLA:
btfsc PORTA,0
goto BASLA
bsf PORTA,2
goto BASLA
END
Mplabx'in .hex dosyasını nereye kaydettiğini görmemişim , ayarları karıştırınca gördüm.
WDT'ı devreden çıkarmak çözüm değil ama , sonuçta WDT'ın devreye girmesini gerektiren bir sorun var ortada.
Döngüde sorun varmış , biraz kurcalayınca WDT devreye girmez oldu.
Ancak bu sefer de PORTA'nın değeri değişmiyor nedense.
Devamını Assembly bölümüne sormalıyım sanırım , teşekkürler :)
Ekleme :
btfsc komutunu yanlış kullanmışım , bu yüzden sorun çıkıyormuş.