Stap 4: Programmeren van de PIC
Het grote ding over het programmeren van de Picaxe is de minimale hoeveelheid geld dat u nodig hebt om te gaan met hen en de eenvoud van de taal. Voor mijn programma gebruikte ik ongeveer 1/2 dozijn basis commando's. Deskundigen kunnen waarschijnlijk wel meer voor minder, maar ik ben een hack en een resultaat dat past bij mij! Voor het programmeren van de chip zelf moet u een chip (uiteraard) een download kabel - seriële of parallelle je kon zelfs seriële één je zelf voor habbekrats, ook moet u de gratis programmeersoftware beschikbaar op de website Picaxe.De Picaxe die ik gebruikte was een 18 X, deze chip heeft 9 output pinnen en 5 pinnen input en maximaal 600 coderegels kan houden. At dit stadium ik alleen maken gebruik van de 6 van de pennen. 5 de LED's en 1 voor het inschakelen en uitschakelen de klankmodule uitvoeren. In een later stadium dat ik kon breken de LED's op in 8 blokken voor een hogere resolutie, vergeet niet mijn chauffeur darlington kan maximaal 8 uitgangen tegelijk worden uitgevoerd. Of als alternatief kon ik het mes make-up van 4 blokken (zoals een ander merk) en controle van elke blade individueel
Dat alles gezegd en gedaan kan ik vrij veel de messen lichte op en neer met ongeveer 20 coderegels maken. Dus hoe zit het met de andere 580? Dit lijkt een verspilling, dus ik heb sommige extra modi 1 toegevoegd. Normale modus, 2. Normale modus klinken niet 3. Nachtmodus Rider 5. Varken-modus. Als u wilt wijzigen van de modi die u de push-knop ingedrukt gedurende 5 seconden die de saber knippert tweemaal te betekenen programma-modus en afhankelijk van hoe vaak je de drukknop met in 5 seconden dictaat uw nieuwe modus. Als u niet druk op de knop of het teveel tijden het keert terug terug naar de normale modus.
Hier is de code die ik met toch begonnen ben...
B5 = 00000001' Intiallise saber modus variabele %
B1 = 0' Intialise modus wijzigen teller variabele
B0 = 0' niet zeker waarom ik deed dit
B2 = 1' Set de standaardmodus naar Saber normaal
laat pinnen = % 00100000' Set pin 6 HIGH, LOW zal weer op de klankmodule
Reset: ' Reset alle pins na een moduswijziging
laat pinnen % 00100000 =
onderbreken van 100
goto lus
lus: ' hoofdlus controleren drukknop
Als pin2 = 0 dan modus??? Ga naar flsh als pin0 hoog
goto lus
modus:
Als b1 > 5 dan mode_change ' als de teller op 5 goto moduswijziging
onderbreken van 20
Als pin2 = 1 dan beslist ' als de schakeloptie goto is een modus selecteren
Als pin2 = 0 dan count_t ' goto teller
count_t: ' dit item zal tellen tot vijf
onderbreken van 10
B1 = b1 + 1
Goto-modus
mode_change: ' flitsen saber tweemaal om aan te duiden moduswijziging
B2 = 0
laat pinnen = % 00111111
onderbreken van 300
laat pinnen % 00100000 =
onderbreken van 300
laat pinnen = % 00111111
onderbreken van 300
laat pinnen % 00100000 =
onderbreken van 300
graaf 2, 5000, b2 ' bush knopacties met telt in 5 seconden en slaat dit in b2
laat pinnen = % 00111111
onderbreken van 300
laat pinnen % 00100000 =
onderbreken van 300
B1 = 0
goto lus
Besluiten: ' besluit gemaakt, afhankelijk van de waarde in b2
B1 = 0
Als b2 = 1 dan saber
Als b2 = 2 dan silent_saber
Als b2 = 3 dan Knight_rider
Als b2 = 4 dan varkens
Als b2 > 4 vervolgens saber
Als b2 < 1 vervolgens saber
goto lus
Saber: ' fundamentele saber, modus
B1 = 0
Als b5! = % 00000001 dan p_down
Als b5 = % 00000001 dan p_up
goto lus
p_up:
laat pinnen = % 00110000
onderbreken van 200
laat pinnen % 00010000 =
onderbreken van 100
laat pinnen = % 00011000
onderbreken van 100
laat pinnen = % 00011100
onderbreken van 100
laat pinnen = % 00011110
onderbreken van 100
laat pinnen = % 00011111
B5 = % 00000000
goto lus
p_down:
laat pinnen = % 00111111
onderbreken van 200
laat pinnen = % 00011111
onderbreken van 400
laat pinnen = % 00011111
onderbreken van 100
laat pinnen = % 00011110
onderbreken van 100
laat pinnen = % 00011100
onderbreken van 100
laat pinnen = % 00011000
onderbreken van 100
laat pinnen % 00010000 =
onderbreken van 100
laat pinnen = % 00000000
B5 = % 00000001
goto lus
silent_saber: ' zegt het allemaal echt
B1 = 0
Als b5! = % 00000001 dan p_down_s
Als b5 = % 00000001 dan p_up_s
goto lus
p_up_s:
laat pinnen = % 00110000
onderbreken van 100
laat pinnen = % 00111000
onderbreken van 100
laat pinnen = % 00111100
onderbreken van 100
laat pinnen = % 00111110
onderbreken van 100
laat pinnen = % 00111111
B5 = % 00000000
goto lus
p_down_s:
laat pinnen = % 00111111
onderbreken van 100
laat pinnen = % 00111110
onderbreken van 100
laat pinnen = % 00111100
onderbreken van 100
laat pinnen = % 00111000
onderbreken van 100
laat pinnen = % 00110000
onderbreken van 100
laat pinnen % 00100000 =
B5 = % 00000001
goto lus
Knight_rider:
Als pin2 = 0 dan reset
laat pinnen % 00100000 =
onderbreken van 100
laat pinnen = % 00110000
onderbreken van 100
laat pinnen = % 00101000
onderbreken van 100
laat pinnen = % 00100100
onderbreken van 100
Als pin2 = 0 dan reset
laat pinnen = % 00100010
onderbreken van 100
laat pinnen = % 00100001
onderbreken van 100
laat pinnen = % 00100010
Als pin2 = 0 dan reset
onderbreken van 100
laat pinnen = % 00100100
onderbreken van 100
laat pinnen = % 00101000
onderbreken van 100
laat pinnen = % 00110000
Als pin2 = 0 dan reset
goto Knight_rider
varkens:
Als pin2 = 0 dan reset
laat pinnen % 00100000 =
onderbreken van 100
laat pinnen = % 00110000
onderbreken van 100
laat pinnen = % 00101000
onderbreken van 100
laat pinnen = % 00100100
onderbreken van 100
Als pin2 = 0 dan reset
laat pinnen = % 00100010
onderbreken van 100
laat pinnen = % 00100001
Als pin2 = 0 dan reset
goto varkens
Uiteindelijk denk ik dat het zou gaaf te gebruiken van een microfoon of iets en de saber gebruiken als een VU-meter - brengen de tri-colour LED's!