Aquí una primera prueba que he realizado con la Stellaris LaunchPad y Energia, se que esta tarjeta esta descontinuada (Actualmente es la Tiva C) pero yo hace tiempo que la tenia arrumbada así que decidí darle un uso. Inicialmente decidí usar energía por lo fácil que sera armar algunos ejemplos, pero espero también ir practicando con el Code Composer Studio. Bueno que hace este ejemplo, lo único que hará es ir encendiendo un color del LED RGB (incorporado en la placa) cada que se presiona el botón SW1, por el momento solo son 4 colores diferentes, pero bueno se entiende la mecánica de usar las entradas y salidas, digamos es mi hola mundo con la Stellaris.
Código:
El código utilizado para este sencillo ejemplo es el siguiente, básicamente con cada pulso en SW1 incrementamos una variable, dependiendo de eso analizamos en un switch y activamos las salidas correspondiente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* Uso de entradas y salidas digitales | |
* | |
******************************************************************************* | |
* FileName: LM4F_E001 | |
* Processor: EX-LM4F120XL | |
* Complier: Energia 0101e0017 | |
* Author: Pedro Sánchez (MrChunckuee) | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Email: mrchunckuee.psr@gmail.com | |
* Description: Este ejemplo enciende los LEDs dependiendo de la cantidad | |
de veces que se precione el boton PUSH1. | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.00 12/06/2016 Creación del firmware | |
******************************************************************************/ | |
char count; | |
void setup() { | |
// Inicializa entradas y salidas | |
// Activamos Pull-Up en PUSH1 | |
pinMode(RED_LED, OUTPUT); | |
pinMode(GREEN_LED, OUTPUT); | |
pinMode(BLUE_LED, OUTPUT); | |
pinMode(PUSH1, INPUT_PULLUP); | |
count=0; | |
} | |
void loop() { | |
ReadInputs(); | |
SetOutputs(); | |
} | |
void ReadInputs (){ | |
if (digitalRead(PUSH1)==LOW){ //Checamos el estado de PUSH1 | |
count = count + 1; | |
if(count>4) count = 1; | |
while(digitalRead(PUSH1)==LOW); | |
delay(1); | |
} | |
} | |
void SetOutputs(){ | |
switch(count){ | |
case 1: | |
digitalWrite(RED_LED, HIGH); | |
digitalWrite(GREEN_LED, LOW); | |
digitalWrite(BLUE_LED, LOW); | |
break; | |
case 2: | |
digitalWrite(RED_LED, LOW); | |
digitalWrite(GREEN_LED, HIGH); | |
digitalWrite(BLUE_LED, LOW); | |
break; | |
case 3: | |
digitalWrite(RED_LED, LOW); | |
digitalWrite(GREEN_LED, LOW); | |
digitalWrite(BLUE_LED, HIGH); | |
break; | |
case 4: | |
digitalWrite(RED_LED, HIGH); | |
digitalWrite(GREEN_LED, HIGH); | |
digitalWrite(BLUE_LED, HIGH); | |
break; | |
default: | |
digitalWrite(RED_LED, LOW); | |
digitalWrite(GREEN_LED, LOW); | |
digitalWrite(BLUE_LED, LOW); | |
break; | |
} | |
} |
Vídeo:
Bueno para que se aprecie el efecto dejo un vídeo de la Stellaris en acción:
Bueno para que se aprecie el efecto dejo un vídeo de la Stellaris en acción:
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
0 Comentarios