a simple code for elevator

Dependencies:   PinDetect mbed Servo

Committer:
kemken
Date:
Mon Jun 04 13:51:43 2012 +0000
Revision:
0:85829f7bbe62

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kemken 0:85829f7bbe62 1 /*
kemken 0:85829f7bbe62 2 * PROGRAM RESPONSIBLE FOR open/close door.
kemken 0:85829f7bbe62 3 * ^^^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^
kemken 0:85829f7bbe62 4 *
kemken 0:85829f7bbe62 5 * FILE NAME: LED.cpp
kemken 0:85829f7bbe62 6 * USAGE: program that control 16 LED's that indicate the position of the doors.
kemken 0:85829f7bbe62 7 */
kemken 0:85829f7bbe62 8
kemken 0:85829f7bbe62 9
kemken 0:85829f7bbe62 10 /*
kemken 0:85829f7bbe62 11 * including the wanted library files.
kemken 0:85829f7bbe62 12 */
kemken 0:85829f7bbe62 13 #include "mbed.h"
kemken 0:85829f7bbe62 14 #include "LED.h"
kemken 0:85829f7bbe62 15 #include "main.h"
kemken 0:85829f7bbe62 16
kemken 0:85829f7bbe62 17 /*--------------------------*\
kemken 0:85829f7bbe62 18 * defineding the variables*
kemken 0:85829f7bbe62 19 \*--------------------------*/
kemken 0:85829f7bbe62 20 int floor_level;
kemken 0:85829f7bbe62 21 int LED_order;
kemken 0:85829f7bbe62 22
kemken 0:85829f7bbe62 23 DigitalOut latch(p8); // control a digital output pin..
kemken 0:85829f7bbe62 24
kemken 0:85829f7bbe62 25 SPI spi(p5, p6, p7); // SPI bus master; mosi, miso, sclk.
kemken 0:85829f7bbe62 26 Ticker door_timer; /* using ticker class which repeatedly call a function*/
kemken 0:85829f7bbe62 27
kemken 0:85829f7bbe62 28 void open_close_doors ( int f) { // a function that defined the number of elements and selecting a floor
kemken 0:85829f7bbe62 29 floor_level=f; // for selecting the wanted floor (0, 1)
kemken 0:85829f7bbe62 30 LED_order=28; // max. number of the elements
kemken 0:85829f7bbe62 31 }
kemken 0:85829f7bbe62 32
kemken 0:85829f7bbe62 33 void doors (void) { // a function responsible of turning the LEDs on/off
kemken 0:85829f7bbe62 34 if (LED_order) {
kemken 0:85829f7bbe62 35 spi.write(door_light[floor_level][--LED_order]); //Write to the SPI Slave; Send the command.
kemken 0:85829f7bbe62 36 latch=1;// Deselect the device
kemken 0:85829f7bbe62 37 latch=0;// Select the device by seting chip select low
kemken 0:85829f7bbe62 38 if (LED_order==0) // when the LED order reach 0, a new event will be called (timeout)
kemken 0:85829f7bbe62 39 new_event(timeout);
kemken 0:85829f7bbe62 40 }
kemken 0:85829f7bbe62 41 }
kemken 0:85829f7bbe62 42
kemken 0:85829f7bbe62 43 void doors_start (void) {// a ticker function for the LED doors.
kemken 0:85829f7bbe62 44 spi.format(16,0);
kemken 0:85829f7bbe62 45 latch =0;// Select the device by seting chip select low
kemken 0:85829f7bbe62 46 spi.write(0xFFFF); //Write to the SPI Slave; Send (0xFFFF)the command.
kemken 0:85829f7bbe62 47 latch=1;// Deselect the device
kemken 0:85829f7bbe62 48 latch=0;
kemken 0:85829f7bbe62 49 LED_order=0;
kemken 0:85829f7bbe62 50 door_timer.attach(&doors,0.2);// repeatedly call "doors" function.
kemken 0:85829f7bbe62 51 }