Stap 3: Spin Basics
"Stel je voor als BASIC en PASCAL op bar tijd vastgehaakt en 9 maanden later een nieuwe taal een pop-fly - Nou dat SPIN voor u is." - Ben Heck
Spin is waarschijnlijk de meest gebruikte high-level taal voor de Prop, omdat het ligt (1), en (2) er een tolk van de spin op de Prop. Er zijn ook andere talen die er, maar ik dacht dat ik zou spreken over Spin want het is degene die ik het beste ken.
UW EERSTE PROGRAMMA
Klaar voor uw eerste programma? Hier is het:
Neem het programma hierboven, zet het in de Propeller-tool en druk op F10. Het zal snel compileren en laden in de schroef. De code zal het knipperen van een LED verbonden met P0 elke andere seconde (1/2 Hertz) voor altijd. Laten we breken elke regel om te begrijpen wat het doet;
Belangrijkste PUB
Spin is onderverdeeld in blokken;
PUB en PRI
Deze 2 blokken houden daadwerkelijke code. Als u bekend met php of BASIC of C bent, werken deze veel als functies. Ze hebben namen (de naam van dit blok is 'main'), en kunt u ze doorgeven waarden (function(passedval)).
De resterende blokken zijn niet vereist voor een geldige programma;
CON
CON houdt programma-constanten zijn. Als er een constante die u in het hele programma, de CON-blok kun je eenmaal te wijzigen het en het zal blijken elke keer dat je ermee. Hier is een voorbeeld van het BLINKIE licht programma met een CON blok;
VAR
Het VAR-blok houdt programma variabelen. In het programma van blinky lichten, ik heb niet alle variabelen van het systeem gebruikt, maar hier is een versie van blinky lichten met behulp van variabelen
Er zijn 2 meer blokken, DAT en OBJ, maar wij zal overslaan voor nu - OBJ is handig als iemand anders de code opnemen, en DAT is een andere plek om te houden van variabelen, het is ook waar je montage-code (als u wilt om het te gebruiken).
Anyway - terug naar onze oorspronkelijke programma. De volgende regel is:
Dira [0]: = 1
Elke pin op de schroef kan worden ingesteld op een invoer of een uitvoer. Wanneer de Prop opwaarts zelfstart, is elke pin ingesteld als input, dus moeten we P0 ingesteld op een uitgang.
Om in te stellen P0 als uitgang, zult we Uwijzigtdewaarde van dira [0] 1. De: = is een toewijzingsoperator in draai. Kunt u raden hoe stelt u P10 naar een uitvoer? Dira [10]: = 1. U kunt ook een aantal pinnen met één opdracht. Als u wilt wijzigen P0, P1, P2 en P3, gewoon gebruik maken van dira [0..3]: = 1.
Herhaal
Herhaal vertelt de Propeller aan een blok code meerdere keren uitvoeren. U kunt een terugkerende aandoening (herhaal ik van 1 tot 100) of gewoon herhalen voor altijd door het niet opgeven van iets anders. Dit Herhaal blok zal voor altijd herhalen.
Code kan worden herhaald is afgebakend door tabs. Opmerking de zachte grijze lijnen onder het herhalen blok? De Propeller Tool zet die grijze lijnen er om aan te geven welke code zit in de repeat-lus.
outa [0]: = 1
outa vertelt de propeller aan de pin verbinding te maken met grond of V +. outa werkt net als dira, kunt u de uitvoer van een enkele pin (outa [10]: = 1) of een groep van pins (outa [0..3]: = 1). Opmerking dat outa is alleen zinvol als de pin is overgeschakeld naar een uitvoer met dira.
Verder gebruikt de Propeller Tri-state logica. Elke pin kan worden verbinding maken met gemalen, V +, of in te stellen in een hoge impedantie staat.
Een hoge impedantie staat laat de pin zin of het is verbinden met grond of V + zonder dat het signaal. Het laat meerdere pinnen hetzelfde kanaal gebruiken gegevens en het doen van dingen zoals charlieplexing.
Sluit de pin aan de grond met:
Dira [pin]: = 1
outa [pin]: = 0
Verbinden met de pin V + met:
Dira [pin]: = 1
outa [pin]: = 1
zin als de pin is verbonden met een lage of hoge signaal (hoge impedantie staat):
Dira [pin]: = 0 (standaard op het opstarten)
Pinstatus: ina [pin] =
Ina werkt net als outa en dira, behalve het alleen-lezen. Als de pin is ingesteld als een input, zal ina houden de huidige invoerwaarde.