سلام
من میخوام این برنامه رو طوری تغییر بدم که بیت پریتی روهم چک بکنه و اگه درست بود portd.7 = 0 و اگر نبود portd.7 = 1 بکنه
میشه کمک کنین ؟
من میخوام این برنامه رو طوری تغییر بدم که بیت پریتی روهم چک بکنه و اگه درست بود portd.7 = 0 و اگر نبود portd.7 = 1 بکنه
میشه کمک کنین ؟
کد:
void send7(char a)
{
#asm
send_7bit:
ldd r19,Y+0
cbi PORTD,1
call bit_delay
ldi r16,7
nxt_bit:
in r17,PORTD
bst r19,0
bld r17,1
out PORTD,r17
lsr r19
call bit_delay
dec r16
brne nxt_bit
sbi PORTD,1
call bit_delay
ret
#endasm
}
char receive7(void)
{
#asm
receive_7bit:
ldi r18,0
till_reset:
in r17,PIND
andi r17,1
brne till_reset
call hbit_delay
ldi r16,7
rnxt_bit:
clc
sbic PIND,0
sec
ror r18
call bit_delay
dec r16
brne rnxt_bit
clc
ror r18
mov r30,r18
#endasm
}
#asm
bit_delay:
push r16
push r17
ldi r17,1
bdel2:
ldi r16,26
bdel1:
dec r16
brne bdel1
dec r17
brne bdel2
pop r17
pop r16
ret
hbit_delay:
push r16
push r17
ldi r17,1
hbdel2:
ldi r16,43
hbdel1:
dec r16
brne hbdel1
dec r17
brne hbdel2
pop r17
pop r16
ret
#endasm



دیدگاه