説明:
レディセットを作っています!NIOS 2 アセンブリのプログラム。フローは次のようになります。
start
|
One LED
delay 1 Sec
|
Four LED
delay 3 Sec
|
Eight LED
Go!
質問:
Nios 2 アセンブリで遅延をプログラムする方法がわかりません。良い例が見つからず、途方に暮れています。
My Work:
以下のコードは、Altera Monitor Program でコンパイル可能です。タイマーの実験を始めましたが、役に立つものは何も作成できませんでした。コード内のブロックされたセクションを参照してください。
私のコード:
.data
.equ TIMER_BASE, 0x10002000
.equ PERIOD, 0x1111ffff
.equ DELAY, 20
.equ LED, 0x10000010
.text
.global _start
_start:
movia r4, TIMER_BASE
movi r5, 6
movia r2, PERIOD #load initial timer values
stwio r2, 8(r4)
srli r2, r2, 16
stwio r2, 12(r4)
stwio r5, 4(r4) #start the timer
movi r6, DELAY #delay
oneLED:
movi r14, 0b10000000 #turn on One LED
movia r15, LED
stw r14, 0(r15)
br fourLED
##############
DELAY:
subi r6,r6,1 #subtract 1 from delay
bne r6,r0, DELAY #continue subtracting if delay not elapsed
br DELAY #delay elapsed, redo the LOOP
##############
fourLED:
movi r14, 0b11110000 #turn on Four LEDs
movia r15, LED
stw r14, 0(r15)
br eightLED
eightLED:
movi r14, 0b11111111 #turn on Eight LEDs
movia r15, LED
stw r14, 0(r15)
br oneLED
遅延コードの例を教えてください。または私のコードを修正することによって。また、あなたの論理を理解できるように、建設的なコメントを提供してください。ありがとう