2017-03-10 4 views
1
LA $t1, TRISE 
LI $t2, 0x0000 
SW $t2, 0($t1) 

LA $t1, TRISD 
LI $t2, 0xFFFF 
SW $t2, 0($t1) 

LI $t8, 0b0000000001 

LA $t1, PORTE 
LA $t2, PORTD 

LI $t7, 0x2000 

Loop: 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
JAL determinedelay 
NOP 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
JAL determinedelay 
NOP 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
JAL determinedelay 
NOP 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
SW $t8, 0($t1) 
SLL $t8,$t8,1 
SW $t8, 0($t1) 

SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
SRL $t8,$t8,1 
SW $t8, 0($t1) 
JAL Loop 
NOP 

determinedelay: 
LI $t7, 0x2000 
LW $t4,0($t2) 
SRL $t4,$t4,8 

mydelay: 
ADDI $t7,$t7,-1 
BGEZ $t7, mydelay 
NOP 
JR $ra 
NOP 

Ce code est censé allumer une LED, passer à gauche, tourner sur un autre, passer à gauche, arriver à l'extrémité gauche de la bande, répétez le même processus aller bien, et ainsi de suite dans une boucle sans fin.MIPS et PIC32 LED Clignoteur

Je crois que ma partie du code le fait correctement, mais j'ai des problèmes avec le délai. En fin de compte, le délai complet devra s'appuyer sur les entrées de commutation, mais je suis actuellement en train d'essayer de le faire fonctionner avec un délai de jeu cohérent. Lorsque je lance le programme, rien ne se passe sur le matériel.

Répondre

0

Marchez avant de tenter d'exécuter. Écrivez le code pour allumer une seule LED.

Lorsque vous avez ce travail, écrivez le code pour allumer et éteindre cette LED.

Lorsque vous avez ce travail, écrivez le code pour allumer et éteindre toutes les LED de la bande.