1
我正在为AVR MCU编写一些C/asm程序。我仍然在学习,所以我希望自己的代码中出现了某种错误。空阵列打印
我在我的C代码中有一个缓冲区volatile unsigned char suart_0_rx_buffer[SUART_0_BUF_SIZE+1];
,我在我的asm代码中访问如下。我想要做的就是将一个字节s0_Rxbyte
存储在缓冲区中,并且每次增加指针s0_index
。 's0_Rxbyte`总是一个非零值。
suart_0_wr_buf_2: ldi s0_z_low, lo8(suart_0_rx_buffer)
ldi s0_temp1, hi8(suart_0_rx_buffer)
add s0_z_low, s0_index
adc s0_z_high,s0_temp1
suart_0_wr_buf_3: st Z+, s0_Rxbyte
inc s0_index
clr s0_temp1
st Z, s0_temp1
如果我尝试打印在我的C代码循环中的内容,我什么也没得到。
我不想在这里附上一切,因为它会混乱。
那么有没有人看到上面的asm代码的任何问题?
我们可能需要更多的代码。例如,你在哪里设置Z? s0_Rxbyte在哪里设置?你的循环在哪里/你甚至想循环?然而,代码的第5行和第6行完全符合您的要求。 – Sparafusile 2011-03-18 14:27:06