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