Etape 21 : Utilisez les broches GPIO pour Flasher LED (diode électroluminescente)
Vous pouvez voir comment il a été soudé à la partie supérieure gauche de l’image. Lorsque vous exécutez l’application trakrmotorcontrol et aucune touche n’est actionnée, rien ne s’allume. Lorsque vous appuyez sur le bouton A, la LED verte s’allume ; Lorsque vous appuyez sur le bouton B, la LED rouge s’allume.
Code du langage C :
////////////////////////////////////////////
Programme flash LED pour espion vidéo TRAKR
Programme analyse pour voir si le bouton A été
pressé sur TRAKR distant et ensembles GPC0 haute
et GPC1 faible d’envoyer courant par LED
en avançant de biais (en marche).
//
Si vous appuyez sur le bouton B, il définit GPC0 faible
et GPC1 élevé d’envoyer courant à travers
LED dans la direction opposée (éteint).
///////////////////////////////////////////
#include « svt.h » //include API officielle
#include « JAPI.h » //include « Secret sauce » API
#define GPC0 (1 << 0) //bitmask pour axe GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask pour axe GPC1 = 00000010
#define GPC2 (1 << //bitmask 2) pour la broche GPC2 = 00000100
#define GPC3 (1 << 3) //bitmask pour broche GPC3 = 00001000
#define GPC4 (1 << 4) //bitmask pour axe GPC4 = 00010000
#define GPC5 (1 << 5) //bitmask pour broche GPC5 = 00100000
#define PDC6 (1 << 6) //bitmask pour axe PDC6 = 01000000
#define GPC7 (1 << 7) //bitmask pour axe GPC7 = 10000000
keyState int ; qualifier de « keystate » entier
void Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1) ; mode de sortie //Set pour broches GPC0 et GPC1
}
bool Run()
{
keyState=GetRemoteKeys() ; Vous appuyez sur la touche télécommande TRAKR
assigner à keystate
Si (keyState > 0)
{//if keystate est supérieur à 0
if(keyState&KEY_INPUT1)
{//Button un pressée (moteur en marche avant)
JAPI_SetIoHigh (GPC0); //Set GPC0 goupille élevée (3.3V)
} else {}
JAPI_SetIoLow(GPC0) ; Éteignez la goupille GPC0
}
if(keyState&KEY_INPUT2)
{//Button B enfoncé (moteur arrière)
JAPI_SetIoHigh (GPC1); //Set GPC1 goupille élevée (3.3V)
} else {}
JAPI_SetIoLow(GPC1) ; Couper les broches GPC1
}
if(keyState&KEY_HOME)
{//if bouton home pressé
retourne la valeur false ; Cela mettra fin à la boucle
}
}
retourne la valeur true ; boucle se répète jusqu’au faux
}
void End()
{//Program fin - éteindre les deux broches
JAPI_SetIoLow(GPC0+GPC1) ;
}
Faire un fichier :
# Makefile pour TRAKR jouet
# Projet Trakr
TRACKR_PATH = c: / Trackr
Nom_programme = trakrmotorcontrol
PRETTY_NAME = trakrmotorcontrol
OUTPUT_PATH =. / intermédiaire
Nom_sortie = $(OUTPUT_PATH) / .elf $(nom_programme)
INTERNALS_PATH =... / Composants internes
SOURCES = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJETS = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = bras-elf-gcc
AS = bras-elf-as
BIN = bras-elf-ld
LD = ld-elf-bras
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-J’AI... / Interne/Include-j’ai... / Composants internes-mur - gstabs +
TARGET_FLAG = - mcpu = arm926ejs - CMPAS-32 - mlittle-endian - specs=specs.semi
LDFLAGS = -T... /Internals/WJ_APP_8M.LD -Wl,--defsym-Wl,__stack_base=$(TOPMEMORY) -Wl,-Map -Wl, $(basename $ - gcc-g-s-Shared-o-nostartfiles-statique
tous : pré-compilé postgénération $(OUTPUT_NAME)
$(NOM_SORTIE): $(OBJECTS)
"Liaison... "
« Créer fichier $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Compilation $<"
-c -o "$" $< » $(TARGET_FLAG) $(CFLAGS)
. FAUX : nettoyer postgénération tronçon préalable
nettoyer :
$(RM) -f $(nom_programme) .bin
$(RM) -f « $(PRETTY_NAME) .bin »
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
postgénération :
bras-elf-objcopy - O binaire $(OUTPUT_NAME) « $(PRETTY_NAME) .bin »
[ -d "E:/" ] ; puis \
CP « $(PRETTY_NAME) .bin » e:/APPS / ; \
FI
tronçon :
# Fin du Makefile
Lorsque vous compilez le code ci-dessus avec ce qui précède faire fichier, cela créera un fichier Trakr App appelé « trakrmotorcontrol.bin » et le fichier devra être copié vers le Trakr. Assurez-vous que le Trakr est hors tension et connectez-le à votre ordinateur en utilisant le câble USB jaune fourni avec la Trakr. Copiez trakrmotorcontrol.bin dans le dossier APPS dans le dossier de Trakr. Déconnectez le Trakr de votre ordinateur et allumez le Trakr. Allumez le Trakr distant, cliquez sur le bouton "home" et sélectionnez trakrmotorcontrol dans le menu.
Vous pouvez utiliser l’application trakrmotorcontrol pour contrôler différents types d’appareils électriques... moteurs, lampes, relais, etc..