This is code used for the stand-alone FSL candy dispenser demo.

Dependencies:   mbed

Fork of KL25Z-MPC17510_candy_dispenser by Freescale

Committer:
mareikeFSL
Date:
Fri May 15 19:58:18 2015 +0000
Revision:
0:994b4df8a4d7
initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mareikeFSL 0:994b4df8a4d7 1 *-------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 2 /* Candy Dispenser Demo Code (KL25Z + MPC17510) */
mareikeFSL 0:994b4df8a4d7 3 /*------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 4
mareikeFSL 0:994b4df8a4d7 5 /*--COMPANY-----AUTHOR------DATE------------REVISION----NOTES-------------------------*/
mareikeFSL 0:994b4df8a4d7 6 /* FSL B45220 2015.05.15 rev 1.0 initial */
mareikeFSL 0:994b4df8a4d7 7 /* */
mareikeFSL 0:994b4df8a4d7 8 /*--SEQUENCE--------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 9 /* -> initializes */
mareikeFSL 0:994b4df8a4d7 10 /* -> waits for motion trigger */
mareikeFSL 0:994b4df8a4d7 11 /* -> dispenses candy at trigger */
mareikeFSL 0:994b4df8a4d7 12 /*------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 13
mareikeFSL 0:994b4df8a4d7 14 /*--SPI-------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 15 /* SPI0_CLK (CLK) = PTD1 (J2/12) */
mareikeFSL 0:994b4df8a4d7 16 /* SPI0_MOSI (MOSI) = PTD2 (J2/8) */
mareikeFSL 0:994b4df8a4d7 17 /* SPI0_MISO (MISO) = PTD3 (J2/10) */
mareikeFSL 0:994b4df8a4d7 18 /*------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 19
mareikeFSL 0:994b4df8a4d7 20 /*--GPIO------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 21 /* SPI0_CS (CS) = PTC2 (J2/6) */
mareikeFSL 0:994b4df8a4d7 22 /* DATA0 (EN) = PTC12 (J2/1) */
mareikeFSL 0:994b4df8a4d7 23 /* CTRL1 (IN5) = PTA1 (J1/2) */
mareikeFSL 0:994b4df8a4d7 24 /* SPI1_CS (IN6) = PTA2 (J1/4) */
mareikeFSL 0:994b4df8a4d7 25 /*------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 26
mareikeFSL 0:994b4df8a4d7 27 /*--NOTES-----------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 28 /* WORKS WITH USB CABLE FOR FRDM POWER, sensor attached to button power */
mareikeFSL 0:994b4df8a4d7 29 /*------------------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 30
mareikeFSL 0:994b4df8a4d7 31
mareikeFSL 0:994b4df8a4d7 32 /*--INCLUDES--------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 33 #include "mbed.h"
mareikeFSL 0:994b4df8a4d7 34
mareikeFSL 0:994b4df8a4d7 35 /*--INITS-----------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 36 //KL25Z + MPC17510 I/O
mareikeFSL 0:994b4df8a4d7 37 DigitalOut ENABLE(PTC7);
mareikeFSL 0:994b4df8a4d7 38 DigitalOut OUT1(PTD4);
mareikeFSL 0:994b4df8a4d7 39 DigitalOut OUT2(PTA12);
mareikeFSL 0:994b4df8a4d7 40 DigitalIn SNS(PTC6);
mareikeFSL 0:994b4df8a4d7 41 DigitalIn BUTTON_ON(PTB11);
mareikeFSL 0:994b4df8a4d7 42
mareikeFSL 0:994b4df8a4d7 43 //LED
mareikeFSL 0:994b4df8a4d7 44 DigitalOut led_red(LED_RED);
mareikeFSL 0:994b4df8a4d7 45 DigitalOut led_green(LED_GREEN);
mareikeFSL 0:994b4df8a4d7 46 DigitalOut led_blue(LED_BLUE);
mareikeFSL 0:994b4df8a4d7 47
mareikeFSL 0:994b4df8a4d7 48 /*--CONSTANTS-------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 49
mareikeFSL 0:994b4df8a4d7 50 /*--VARIABLES-------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 51
mareikeFSL 0:994b4df8a4d7 52 /*--FUNCTIONS-------------------------------------------------------------------------*/
mareikeFSL 0:994b4df8a4d7 53
mareikeFSL 0:994b4df8a4d7 54
mareikeFSL 0:994b4df8a4d7 55
mareikeFSL 0:994b4df8a4d7 56 /**************************************************************************************/
mareikeFSL 0:994b4df8a4d7 57 /***MAIN*******************************************************************************/
mareikeFSL 0:994b4df8a4d7 58 /**************************************************************************************/
mareikeFSL 0:994b4df8a4d7 59 int main()
mareikeFSL 0:994b4df8a4d7 60 {
mareikeFSL 0:994b4df8a4d7 61 led_red = 0;
mareikeFSL 0:994b4df8a4d7 62 led_green = 0;
mareikeFSL 0:994b4df8a4d7 63 led_blue = 0;
mareikeFSL 0:994b4df8a4d7 64
mareikeFSL 0:994b4df8a4d7 65 while(1)
mareikeFSL 0:994b4df8a4d7 66 {
mareikeFSL 0:994b4df8a4d7 67 wait(1);
mareikeFSL 0:994b4df8a4d7 68
mareikeFSL 0:994b4df8a4d7 69 while(!BUTTON_ON)
mareikeFSL 0:994b4df8a4d7 70 {
mareikeFSL 0:994b4df8a4d7 71 led_red = 1;
mareikeFSL 0:994b4df8a4d7 72 led_green = 1;
mareikeFSL 0:994b4df8a4d7 73 led_blue = 0; //set blue LED during init phase (main power on)
mareikeFSL 0:994b4df8a4d7 74 }
mareikeFSL 0:994b4df8a4d7 75
mareikeFSL 0:994b4df8a4d7 76 wait(1);
mareikeFSL 0:994b4df8a4d7 77
mareikeFSL 0:994b4df8a4d7 78 while(SNS)
mareikeFSL 0:994b4df8a4d7 79 {
mareikeFSL 0:994b4df8a4d7 80 led_red = 0; //set red LED when no sense
mareikeFSL 0:994b4df8a4d7 81 led_green = 1;
mareikeFSL 0:994b4df8a4d7 82 led_blue = 1;
mareikeFSL 0:994b4df8a4d7 83 }
mareikeFSL 0:994b4df8a4d7 84
mareikeFSL 0:994b4df8a4d7 85 led_red = 1;
mareikeFSL 0:994b4df8a4d7 86 led_green = 0; //set green LED when sense
mareikeFSL 0:994b4df8a4d7 87 led_blue = 1;
mareikeFSL 0:994b4df8a4d7 88
mareikeFSL 0:994b4df8a4d7 89 ENABLE = 1;
mareikeFSL 0:994b4df8a4d7 90 OUT1 = 1; //motor off
mareikeFSL 0:994b4df8a4d7 91 OUT2 = 0; //motor off
mareikeFSL 0:994b4df8a4d7 92
mareikeFSL 0:994b4df8a4d7 93 wait_ms(250);
mareikeFSL 0:994b4df8a4d7 94
mareikeFSL 0:994b4df8a4d7 95 OUT1 = 0; //motor off
mareikeFSL 0:994b4df8a4d7 96 OUT2 = 0; //motor off
mareikeFSL 0:994b4df8a4d7 97 ENABLE = 0;
mareikeFSL 0:994b4df8a4d7 98 }
mareikeFSL 0:994b4df8a4d7 99 }