This is code used for the stand-alone FSL candy dispenser demo.
Dependencies: mbed
Fork of KL25Z-MPC17510_candy_dispenser by
main.cpp@0:994b4df8a4d7, 2015-05-15 (annotated)
- Committer:
- mareikeFSL
- Date:
- Fri May 15 19:58:18 2015 +0000
- Revision:
- 0:994b4df8a4d7
initial
Who changed what in which revision?
User | Revision | Line number | New 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 | } |