(Nios 2/Altera DE2 using Assembly) Why doesn't my lego controller motor receive the values from the sensor for self balancing robot?

1

I am a computer science student and am working on a lab for school. I have been trying to make this work, to no avail. So far, All that happens is my motor runs forward without stopping. I connected my sensor to the LED's on the DE2 board to see if I was able to receive and store their values correctly, and that seems to be the case. However, the motor is not running in correspondence to the sensor. I have been tinkering around with this code for hours with no luck. I am an assembly programming noob and shall really appreciate your help with this.

I have attached my code here:

.equ ADDR, 0x10000070 .equ LEDR, 0x10000000 .equ LEDG, 0x10000010

.global main

main:

movia r22, LEDR
movia r23, LEDG
movia r8, ADDR
movia r9, 0x07f557ff
stwio r9, 4(r8)

sensor1:

movia r9, 0xfffffbff
stwio r9, 0(r8)

loop1:

ldwio r5, 0(r8) 
srli r5, r5, 11 
andi r5, r5, 0x1

bne r5, r0, loop1 

ldwio r10, 0(r8)
srli r10, r10, 27
andi r10, r10, 0x0f
stwio r10, 0(r22)

sensor2:

movia r9, 0xffffefff
stwio r9, 0(r8)

loop2:

ldwio r6, 0(r8) 
srli r6, r6, 13 
andi r6, r6, 0x1

bne r6, r0, loop2

ldwio r11, 0(r8)
srli r11, r11, 27
andi r11, r11, 0x0f
stwio r11, 0(r23)

motor:

/*beq r10, r11, motorOFF*/
blt r10, r11, motorR

movia r15, 0xfffffffc
stwio r15, 0(r8) 
br sensor1

motorR:

movia r15, 0xfffffffe
stwio r15, 0(r8)
br sensor1

.end

and here is a link to the lego controller manual:

http://www-ug.eecg.toronto.edu/msl/nios_devices/dev_newlegocontroller2.html

I am just trying to make this work for now, and then later I will have to use pulse width modulation to make it more accurate... I might have to use the nios2 timer?

I am lost and shall appreciate any help.

Thanks a lot guys, I really appreciate it.

Manik

Thanks a lot, I think I have been spending too much time on this and now this just needs a fresh pair of eyes to help me.

assembly
robot
intel-fpga
lego
nios
asked on Stack Overflow Oct 10, 2014 by Manik Saraf

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0