Quadroped Robot - (NIOSII församlingen) (11 / 13 steg)
Steg 11: Lysdioder och viktigaste kod i C
"Vänta!" Jag hör dig skrika. "Zach, detta är löjligt! Varför skulle du byta språk mitten av instructable!"Jag har två svar till dig.
1. eftersom det är viktigt att förstå hur församlingen kan kopplas samman med C-kod
2. eftersom våra uppdrag krävs en blandning av församlingen och C kod för ett bra märke: P
Så oavsett anledning, detta är nästa steg i vår process, och lyckligtvis, överlägset lättast.
Vi kommer att skriva en huvudsakliga funktion i C som anropar funktionen pokemonmaster i församlingen.
Vi kommer också att skriva en enkel C funktion som sätter på och stänger av vissa lysdioder när en sensor avbryta har utlösts.
Och här är koden:
#include < stdio.h >
void lightup(int *LEDS);
int main () {
pokemonmaster();
Return 0;
}
void lightup(int *LEDS) {
* LYSDIODER = 10;
hemkomst.
}
void lightdown(int *LEDS) {
* LYSDIODER = 0;
hemkomst.
}
Och du trodde det skulle vara svårt: P
Verkliga Tricket är att vara säker att lägga adressen för Lysdioderna du vill in i register 4 (r4) innan du anropar funktionerna lightup och lightdown. Som jag sade tidigare, skickas variabler i r4-r7, sedan i stacken. Detta är en standard, och C skrevs att förvänta sig det.
Det är det! Om du har lyckats följa mina förvirrande instruktioner, har du några ganska tjusig kod!
Om du har haft några problem alls med instruktionerna kodning, tveka inte att fråga mig en fråga. Jag ska göra mitt bästa för att förtydliga något.
Nu, låt oss sätta allt tillsammans och få vår robot promenader!