Random terror phrases
Dependencies: EFM32_CapSenseSlider EFM32_SegmentLCD mbed
Fork of EMF32-Segment-Touch-Demo by
main.cpp@2:9c22b1264236, 2015-09-29 (annotated)
- Committer:
- MaxScorda
- Date:
- Tue Sep 29 14:04:48 2015 +0000
- Revision:
- 2:9c22b1264236
- Parent:
- 1:611525c0aa76
1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 2:9c22b1264236 | 1 | /** ************************************** |
MaxScorda | 2:9c22b1264236 | 2 | In un tempo variabile tra 1 e 5 secondi, refreshticker cambia scritta e nel contempo cambia: |
MaxScorda | 2:9c22b1264236 | 3 | - temporizzazione di led0: meta' tempo acceso l'altra meta' spento |
MaxScorda | 2:9c22b1264236 | 4 | - temporizzazione di led1: meta' tempo lampeggia, l'altra meta' (controllata dal'evento led0) resta acceso |
MaxScorda | 2:9c22b1264236 | 5 | - accende io jecko che viene spento da led0 |
MaxScorda | 2:9c22b1264236 | 6 | I tasti rispondono, il sensore pure |
MaxScorda | 2:9c22b1264236 | 7 | |
MaxScorda | 2:9c22b1264236 | 8 | |
MaxScorda | 2:9c22b1264236 | 9 | */ |
MaxScorda | 2:9c22b1264236 | 10 | |
MaxScorda | 0:cb2d0eb1f49e | 11 | #include "EFM32_SegmentLCD.h" |
MaxScorda | 0:cb2d0eb1f49e | 12 | #include "EFM32_CapSenseSlider.h" |
MaxScorda | 0:cb2d0eb1f49e | 13 | |
MaxScorda | 0:cb2d0eb1f49e | 14 | /******************** Define I/O *****************************/ |
MaxScorda | 0:cb2d0eb1f49e | 15 | InterruptIn in0(PB9); |
MaxScorda | 0:cb2d0eb1f49e | 16 | InterruptIn in1(PB10); |
MaxScorda | 0:cb2d0eb1f49e | 17 | |
MaxScorda | 0:cb2d0eb1f49e | 18 | silabs::EFM32_SegmentLCD segmentDisplay; |
MaxScorda | 0:cb2d0eb1f49e | 19 | silabs::EFM32_CapSenseSlider capSlider; |
MaxScorda | 0:cb2d0eb1f49e | 20 | |
MaxScorda | 1:611525c0aa76 | 21 | DigitalOut myled1(LED1); |
MaxScorda | 1:611525c0aa76 | 22 | DigitalOut myled0(LED0); |
MaxScorda | 1:611525c0aa76 | 23 | |
MaxScorda | 2:9c22b1264236 | 24 | Serial pc(USBTX, USBRX); //Apertura della seriale 2 |
MaxScorda | 2:9c22b1264236 | 25 | |
MaxScorda | 0:cb2d0eb1f49e | 26 | /******************** Define Timers *****************************/ |
MaxScorda | 1:611525c0aa76 | 27 | // devo separare i timers. Non so il perche' |
MaxScorda | 0:cb2d0eb1f49e | 28 | LowPowerTicker refreshTicker; |
MaxScorda | 1:611525c0aa76 | 29 | LowPowerTicker ledTicker0; |
MaxScorda | 1:611525c0aa76 | 30 | LowPowerTicker ledTicker1; |
MaxScorda | 2:9c22b1264236 | 31 | LowPowerTicker timeTicker; |
MaxScorda | 0:cb2d0eb1f49e | 32 | |
MaxScorda | 0:cb2d0eb1f49e | 33 | /***************** Define global variables **********************/ |
MaxScorda | 2:9c22b1264236 | 34 | #define INIT_SECONDS 0 |
MaxScorda | 0:cb2d0eb1f49e | 35 | #define TEST_DURATION 10 |
MaxScorda | 0:cb2d0eb1f49e | 36 | |
MaxScorda | 0:cb2d0eb1f49e | 37 | volatile uint32_t seconds = INIT_SECONDS; |
MaxScorda | 0:cb2d0eb1f49e | 38 | int count = -1; |
MaxScorda | 0:cb2d0eb1f49e | 39 | |
MaxScorda | 0:cb2d0eb1f49e | 40 | |
MaxScorda | 0:cb2d0eb1f49e | 41 | /***************** Define callback handlers *********************/ |
MaxScorda | 0:cb2d0eb1f49e | 42 | void tickerCallback(void); |
MaxScorda | 0:cb2d0eb1f49e | 43 | void in0_handler(); |
MaxScorda | 0:cb2d0eb1f49e | 44 | void in1_handler(); |
MaxScorda | 0:cb2d0eb1f49e | 45 | void touchCallback(void); |
MaxScorda | 0:cb2d0eb1f49e | 46 | void slideCallback(void); |
MaxScorda | 0:cb2d0eb1f49e | 47 | |
MaxScorda | 2:9c22b1264236 | 48 | //------------ Funzioni ------------- |
MaxScorda | 0:cb2d0eb1f49e | 49 | |
MaxScorda | 2:9c22b1264236 | 50 | #include "Functions.h" |
MaxScorda | 0:cb2d0eb1f49e | 51 | |
MaxScorda | 1:611525c0aa76 | 52 | |
MaxScorda | 0:cb2d0eb1f49e | 53 | /*************************** MAIN *******************************/ |
MaxScorda | 0:cb2d0eb1f49e | 54 | int main() |
MaxScorda | 0:cb2d0eb1f49e | 55 | { |
MaxScorda | 0:cb2d0eb1f49e | 56 | // Initialize pushbutton handler |
MaxScorda | 0:cb2d0eb1f49e | 57 | in0.rise(NULL); |
MaxScorda | 0:cb2d0eb1f49e | 58 | in0.fall(in0_handler); |
MaxScorda | 0:cb2d0eb1f49e | 59 | |
MaxScorda | 0:cb2d0eb1f49e | 60 | in1.rise(NULL); |
MaxScorda | 0:cb2d0eb1f49e | 61 | in1.fall(in1_handler); |
MaxScorda | 0:cb2d0eb1f49e | 62 | |
MaxScorda | 0:cb2d0eb1f49e | 63 | // Enable the capacitive slider |
MaxScorda | 0:cb2d0eb1f49e | 64 | capSlider.start(); |
MaxScorda | 0:cb2d0eb1f49e | 65 | capSlider.attach_touch(touchCallback); |
MaxScorda | 0:cb2d0eb1f49e | 66 | capSlider.attach_untouch(touchCallback); |
MaxScorda | 0:cb2d0eb1f49e | 67 | capSlider.attach_slide(-1, slideCallback); |
MaxScorda | 0:cb2d0eb1f49e | 68 | |
MaxScorda | 0:cb2d0eb1f49e | 69 | // Start generating the 1Hz timebase |
MaxScorda | 0:cb2d0eb1f49e | 70 | refreshTicker.attach(&tickerCallback, 1.0f); |
MaxScorda | 2:9c22b1264236 | 71 | timeTicker.attach(&timeDisp, 1.0f); |
MaxScorda | 1:611525c0aa76 | 72 | ledTicker0.attach(&ledTogglerGen, 0.5f); |
MaxScorda | 2:9c22b1264236 | 73 | ledTicker1.attach(&ledToggler, 0.1f); |
MaxScorda | 0:cb2d0eb1f49e | 74 | |
MaxScorda | 2:9c22b1264236 | 75 | printf("Initialization done! \n\r"); |
MaxScorda | 0:cb2d0eb1f49e | 76 | wait(0.01f); //Need to delay slightly to give the serial transmission a chance to flush out its buffer |
MaxScorda | 0:cb2d0eb1f49e | 77 | |
MaxScorda | 2:9c22b1264236 | 78 | //inizializza random |
MaxScorda | 2:9c22b1264236 | 79 | srand (time(NULL)); |
MaxScorda | 0:cb2d0eb1f49e | 80 | |
MaxScorda | 0:cb2d0eb1f49e | 81 | // Go into sleeping mode |
MaxScorda | 0:cb2d0eb1f49e | 82 | while(1) { |
MaxScorda | 0:cb2d0eb1f49e | 83 | sleep(); |
MaxScorda | 0:cb2d0eb1f49e | 84 | } |
MaxScorda | 0:cb2d0eb1f49e | 85 | } |
MaxScorda | 0:cb2d0eb1f49e | 86 |