arkadaşlar 8bitlik bir işlemcim var atmega16 9 girişim 3çıkışım var
girişlere göre çıkışları değiştereceğim fakat 9 biti en lolay nasıl test ederim
8biti aşağıdaki gibi kontrol ediyorum fakat 9bit olunca iş baya karışacak gibi
bu bit test olayını bana anlatabilirmisiniz avr olması şart değil mantığı anlasam yetecek
.include "m16def.inc"
.cseg
.org 0x0000
rjmp main
main:
ldi r16,0x00
out ddrc,r16 ;portc giriş
ldi r16,0xff
out ddrd,r16 ;portd çıkış
rjmp btknt
fw:
sbi portd,0 ;portd0 set
rjmp btknt
rw:
sbi portd,1 ;portd1 set
rjmp btknt ;btknt etiketine atla
rst:
cbi portd,0 ;portd0 reset
cbi portd,1 ;portd1 reset
btknt:
in r17,pinc ;pinc yi r17 yaz
cpi r17,0xfe ;r17 ile 0xfe değerini karşılaştır
breq fw ;karşılaştırma doğru ise fw ye atla
in r17,pinc ;pinc yi r17 yaz
cpi r17,0x7e ;r17 ile 0x7e değerini karşılaştır
breq rw ;karşılaştırma doğru ise rw ye atla
in r17,pinc ;pinc yi r17 yaz
cpi r17,0xf0 ;r17 ile 0xf0 değerini karşılaştır
breq rst ;karşılaştırma doğru ise rw ye atla
rjmp btknt ;btknt atla
8-biti taşıyan değişken gibi yine 8-bitlik bir değişken
daha tanımla, 9.biti kontrol etmek için. Bu değişkenin
0-1 olma durumunu denetleyerek sorunu çözebilirisin.
Saygılar...