Quadroped Robot - (NIOSII assemblage) (9 / 13 stap)

Stap 9: Codering - Setup & de Run Loop

Wij zullen nu de code van de oorspronkelijke installatie van het systeem, en zet het dan in een eenvoudige uitvoering lus.

De installatie omvat zodat alle apparaten om te genereren van interrupts, en aanvankelijk de motoren te stellen op OFF.

Ik moet opmerken dat deze code wordt voorafgegaan door de sectie .data, en de functies van de handler. De volgende instructies zijn bovendien reeds geboekt:

.EQU TIMER, 0x10002000
.EQU LEGO, 0x10000060
.EQU LEGO_IRQ11, 0x800
.EQU LEGO_IRQ8, 0x100
.EQU LEGO_Edge, 0x1000006C
.EQU JTAG_UART, 0x10001000
.EQU LEDG, 0x10000010
.EQU LEDR, 0x10000000

Dus, laten we aan de slag.

.section .text
.Global pokemonmaster # lol. Wanneer u de code voor uw robot schrijft, uw functies aanroepen wat je wilt.
pokemonmaster:
movia r27, 0x800000 / * Initialiseer de stack (uitgelijnd naar 4) * /
movia r8, TIMER
movia r9, 0x6500 / * Set's tijd om countdown 10 seconden 500000000 = 1DCD6500 * /
stwio r9,8(r8)
movia r9, 0x1DCD
stwio r9,12(r8)
movia r9, 0x0 / * voor zorgen dat de timer * /
stwio r9,0(r8)
ldwio r9,0(r8) / * gewoon om te zien wat er gaande is hier * /

movia r11, LEGO / * het basisadres van de GPIO is nu in r11 * /
movia r9, 0x07f557ff / * Lego control board initialisatie in r9 * /
stwio r9, 4(r11) / * winkels in de richting registreren * /
movia r9, 0xFFFFFFFF
stwio r9, 0(r11)
# E:load:value
movia r9, 0xff3ffbff / * Sensor 0, drempel is HEX E 1111|1-111|0-0-1-1-11-11-11-11-10-11-11-11-11-11 * /
stwio r9,0(r11)
# E:load:value
movia r9, 0xff3fefff / * Sensor 1, drempel is HEX E 1111|1-111|0-0-1-1-11-11-11-10-11-11-11-11-11-11 * /
stwio r9,0(r11)

movia r9, 0xffbfffff / * uitschakelen sensoren voor laden * /
stwio r9,0(r11)

movia r9, 0xffdfffff / * wordt ingesteld op de modus staat * /
stwio r9,0(r11)

movia r9,0x18000000     /******************************************************************/
stwio r9,8(r11)

movia r8, JTAG_UART / * r8 bevat nu het basisadres van JTAG_UART * /
/ * Vertellen de UART interrupts aanvragen wanneer tekens worden ontvangen * /
Addi r9, r0, 0x1 / * set bit 0 (REI) van het MVO-register op 1 * /
stwio r9, 4(r8)

Addi r9, r0, 0x900 / * bits 11 en 8 van de ctl3 ingesteld op 1 * /
wrctl ctl3, r9

movia r9, 1
wrctl ctl0, r9

movia r9, LEGO_Edge / * duidelijk de lego sensor rand trigger * /
stwio r0,0(r9)

run_loop:
movia r9, LEDG
movia r20, LEGO

ldwio r19,0(r20)
srli r19, r19, 26
stwio r19,0(r9)
movia r9, LEGO_Edge
stwio r0,0(r9)
BR run_loop

.Global wall_escape_left
wall_escape_left: / * bochten verliet een zekere afstand om te voorkomen dat een muur * /
movia r8, TIMER
STW r0,0(r8)

movia r9, 0x4 / * start de timer maar niet continu (moet opzettelijke herstart) * /
STW r9,4(r8) / * Start de timer voor een 1 periode run * /
movia r4, LEGO / * het adres van de motorcontroller pakt r4 voor de functie * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
oproep motors_turn_left
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
LEFT_LOOP:
LDW r9,0(r8) / * Ontdek als de vlag is gegaan omhoog (een periode is verstreken) * /
movia r10, 0x00000001
en r9, r9, r10
dustybear r9, r10, LEFT_CLEAR / * als de timer een time-out opgetreden is... * /
BR LEFT_LOOP
LEFT_CLEAR:
STW r0,0(r8) / * de markering wissen * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
movia r4, LEGO
Bel motors_forward / * Start weer vooruit lopen * /
LDW ra,0(sp) / * terug te brengen van het retouradres * /
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16 / * krimpen van de stapel terug naar beneden * /
RET

.Global wall_escape_right
wall_escape_right:
movia r8, TIMER
STW r0,0(r8)

movia r9, 0x4
STW r9,4(r8)
movia r4, LEGO / * het adres van de motorcontroller pakt r4 voor de functie * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
oproep motors_turn_right
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
RIGHT_LOOP:
LDW r9,0(r8)
movia r10, 0x00000001
en r9, r9, r10
dustybear r9, r10, RIGHT_CLEAR
BR RIGHT_LOOP
RIGHT_CLEAR:
STW r0,0(r8)
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
movia r4, LEGO
oproep motors_forward
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
RET

Als dat veel te verwarrend was, ben ik helemaal blij om vraag te beantwoorden. Vraag ze hieronder.

Gerelateerde Artikelen

Valerobot assemblage robot tuturial

Valerobot assemblage robot tuturial

gelukkig Nieuwjaar! nu ook kunt u uw eigen assemblage robot met plastic objecten gevonden rondom uw huis. de hemel is de limiet. gebruik van elke soort kunststof of objecten gevonden. Legos worden gebruikt voor de armen en benen, maar gebruik je fant
Hoe maak je kleine robots met nRover bestuur

Hoe maak je kleine robots met nRover bestuur

De nRover, is een kleine bord gemaakt om te bouwen van kleine robots zoals UGV (onbemande ground voertuigen), lijn volgeling of Domotica, het kan worden gecontroleerd door wifi, Bluetooth en radio-controle. Het belangrijkste doel is de ontwikkeling v
Bedfellow Robot Bed

Bedfellow Robot Bed

Bedfellow is een autonome robot bed dat nieuwe engagementen opzoekt. Met andere woorden, heb ik robotized mijn persoonlijke bed om te socialiseren en zich met anderen te delen.Misschien een beetje meer van een toelichting is in orde. Een bedfellow ka
Bouwen van een robot van Lego-Multigraph

Bouwen van een robot van Lego-Multigraph

Niet zou u genieten van gebouw en met behulp van een robot die vestigt de abstracte kunst te gebruiken in uw kunst en ambachtelijke projecten? De Lego-Multigraph, is zelfs als er geen praktische toepassingen, leuk om te bouwen en te bedienen! Dit is
Arduino-Controlled Robotic Drum

Arduino-Controlled Robotic Drum

Jarenlang die ik heb verteld wie dat luistert ging ik om te bouwen van een robot trommel. De meeste mensen soort onverschillig haalde. Zelfs als ik het gebouwd, de meeste mensen soort het keek en overgebracht doubtfulness. Het leek niemand maar zelf
Robot

Robot

Hoe ik het notswatbot gebouwdIk begon met een militaire overtollige behuizing, geschuurd en geschilderd het met krylon rimpel afwerking. De track systeem samengesteld aangepaste uit delen gevonden op Ebay, sommige lynxmotion tracks. (hubs moest worde
Spark-e - een vonk kern + Touch OSC gecontroleerd Wall-e speelgoed robot conversie

Spark-e - een vonk kern + Touch OSC gecontroleerd Wall-e speelgoed robot conversie

Als het gaat om leuke robots, 's de instructables robot wordt boven aan de lijst natuurlijk, de tweede meest bekende got to be Pixar Wall-e. Wie zou niet willen dat een van deze kleine jongens rennende rond uw huis schoonmaken van uw afval voor u? No
Gyroscoop gecontroleerd Robot

Gyroscoop gecontroleerd Robot

Hallo iedereenVandaag ga ik maken dat kan worden aangestuurd via GSM gyroscope.we zijn met behulp van bluetooth als het aansluiten van medium.laten we beginnen...Stap 1: Dingen die je zal nodig chasis.2 motoren en wielen.1 caster wiel.schroevendraaie
First Person View RC Robot!

First Person View RC Robot!

We deze kleine RC robot dit jaar voor de eerste Ohio State University MAKEathon gemaakt. We bepaald dat we wilden een robot FPV vóór de wedstrijd, maar de concept-generatie, modelleren, codering, bedrading, printen en monteren alle vond plaats op de
Opnieuw een koele oude Robot

Opnieuw een koele oude Robot

Voldoen aan Arlan, een leuke robot met een heleboel van de persoonlijkheid. Hij woont in mijn zus haar klas (ze is een 5e rang wetenschap leraar). Ik herbouwd hem tot de mascotte voor haar klasse robotica team, hij is ook de helper van de klas. De ki
Arduino Powered Nixie buizen: ArduiNIX Nixie stuurprogramma schild assemblage

Arduino Powered Nixie buizen: ArduiNIX Nixie stuurprogramma schild assemblage

www.ArduiNIX.com presenteert: ArduiNIX Nixie stuurprogramma schild assemblageHet schild van de ArduiNIX is een gebruiker programmeerbare platform voor het rijden multiplexed Nixie-buis of andere hoogspanning displays **. De ArduiNIX is opensource har
Ada Robotic Hand - Open Bionics

Ada Robotic Hand - Open Bionics

Dit is een stap voor stap handleiding over hoe te een Open Bionics Ada robotic handmaken. Dit is afgeleid van de Dextrus robotic hand, door het Open Hand Project. Het wordt verondersteld u hebt besteld het Ada robotic hand kit of toegang hebben tot e
Hugbot - een zachte Robot die kleine knuffels geeft

Hugbot - een zachte Robot die kleine knuffels geeft

Hugbot is een zachte robot waardoor kleine knuffels. Haar armen zijn gemaakt van aangepaste 3D gedrukte wervels en gedreven door visserij draad dat is schroefdraad door middel van de wervels te stappenmotoren gecontroleerd door een Arduino in haar li
Een Arduino-schild dat uw Radio converteert Controlled auto in een Robot

Een Arduino-schild dat uw Radio converteert Controlled auto in een Robot

Ik heb een heleboel Instructables die beschrijven hoe een radio-gecontroleerde auto kan worden geconverteerd naar een robot. De meeste van deze vereisen dat de R/C auto's ontvanger bestuur worden gewijzigd zodat de RF-sectie van de ontvanger met de l