
Iztech Fork
Fork of A2_Interface3_V_0_0 by
main.cpp@0:ea876cfd7385, 2017-08-10 (annotated)
- Committer:
- rogermcardell
- Date:
- Thu Aug 10 15:44:59 2017 +0000
- Revision:
- 0:ea876cfd7385
- Child:
- 1:9ff81110b78b
1st version with limited functionality and register interfaces
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rogermcardell | 0:ea876cfd7385 | 1 | /* |
rogermcardell | 0:ea876cfd7385 | 2 | Programmer: Roger McArdell |
rogermcardell | 0:ea876cfd7385 | 3 | Date: 01/08/2017 |
rogermcardell | 0:ea876cfd7385 | 4 | Version |
rogermcardell | 0:ea876cfd7385 | 5 | V0.1 First version |
rogermcardell | 0:ea876cfd7385 | 6 | |
rogermcardell | 0:ea876cfd7385 | 7 | */ |
rogermcardell | 0:ea876cfd7385 | 8 | #include <string> |
rogermcardell | 0:ea876cfd7385 | 9 | #include "mbed.h" |
rogermcardell | 0:ea876cfd7385 | 10 | #include "Pins.h" |
rogermcardell | 0:ea876cfd7385 | 11 | #include "Matrix.h" |
rogermcardell | 0:ea876cfd7385 | 12 | #include "BoardComms.h" |
rogermcardell | 0:ea876cfd7385 | 13 | #include "Timers.h" |
rogermcardell | 0:ea876cfd7385 | 14 | |
rogermcardell | 0:ea876cfd7385 | 15 | |
rogermcardell | 0:ea876cfd7385 | 16 | // Prototypes |
rogermcardell | 0:ea876cfd7385 | 17 | void CEC0InteruptRoutine(); |
rogermcardell | 0:ea876cfd7385 | 18 | void CEC1InteruptRoutine(); |
rogermcardell | 0:ea876cfd7385 | 19 | void CEC2InteruptRoutine(); |
rogermcardell | 0:ea876cfd7385 | 20 | void CEC3InteruptRoutine(); |
rogermcardell | 0:ea876cfd7385 | 21 | void HDBaseTInterruptRoutine(); |
rogermcardell | 0:ea876cfd7385 | 22 | void CheckButtons(); |
rogermcardell | 0:ea876cfd7385 | 23 | void Button1Down(); |
rogermcardell | 0:ea876cfd7385 | 24 | void Button2Down(); |
rogermcardell | 0:ea876cfd7385 | 25 | void Button3Down(); |
rogermcardell | 0:ea876cfd7385 | 26 | void Button4Down(); |
rogermcardell | 0:ea876cfd7385 | 27 | void Setup(); |
rogermcardell | 0:ea876cfd7385 | 28 | |
rogermcardell | 0:ea876cfd7385 | 29 | int main() |
rogermcardell | 0:ea876cfd7385 | 30 | { |
rogermcardell | 0:ea876cfd7385 | 31 | Setup(); |
rogermcardell | 0:ea876cfd7385 | 32 | |
rogermcardell | 0:ea876cfd7385 | 33 | printf("Program Started\r\n"); |
rogermcardell | 0:ea876cfd7385 | 34 | while(1) |
rogermcardell | 0:ea876cfd7385 | 35 | { |
rogermcardell | 0:ea876cfd7385 | 36 | TimeLoop(); |
rogermcardell | 0:ea876cfd7385 | 37 | if (pc.readable()) |
rogermcardell | 0:ea876cfd7385 | 38 | CheckForData(); |
rogermcardell | 0:ea876cfd7385 | 39 | if (CEC0INTFlag || CEC1INTFlag || CEC2INTFlag || CEC3INTFlag) |
rogermcardell | 0:ea876cfd7385 | 40 | CheckButtons(); |
rogermcardell | 0:ea876cfd7385 | 41 | if (aboxPort.readable()) |
rogermcardell | 0:ea876cfd7385 | 42 | CheckaboxData(); |
rogermcardell | 0:ea876cfd7385 | 43 | } |
rogermcardell | 0:ea876cfd7385 | 44 | } |
rogermcardell | 0:ea876cfd7385 | 45 | void Setup() |
rogermcardell | 0:ea876cfd7385 | 46 | { |
rogermcardell | 0:ea876cfd7385 | 47 | aboxPort.baud(9600); |
rogermcardell | 0:ea876cfd7385 | 48 | AUXPort.baud(9600); |
rogermcardell | 0:ea876cfd7385 | 49 | TimeLoopSetup(); |
rogermcardell | 0:ea876cfd7385 | 50 | // Attach Interrupts |
rogermcardell | 0:ea876cfd7385 | 51 | HDBaseTINT.rise(&HDBaseTInterruptRoutine); |
rogermcardell | 0:ea876cfd7385 | 52 | CECINT0.rise(&CEC0InteruptRoutine); |
rogermcardell | 0:ea876cfd7385 | 53 | CECINT1.rise(&CEC1InteruptRoutine); |
rogermcardell | 0:ea876cfd7385 | 54 | CECINT2.rise(&CEC2InteruptRoutine); |
rogermcardell | 0:ea876cfd7385 | 55 | CECINT3.rise(&CEC3InteruptRoutine); |
rogermcardell | 0:ea876cfd7385 | 56 | } |
rogermcardell | 0:ea876cfd7385 | 57 | |
rogermcardell | 0:ea876cfd7385 | 58 | void CEC0InteruptRoutine() {CEC0INTFlag = 1;} |
rogermcardell | 0:ea876cfd7385 | 59 | void CEC1InteruptRoutine() {CEC1INTFlag = 1;} |
rogermcardell | 0:ea876cfd7385 | 60 | void CEC2InteruptRoutine() {CEC2INTFlag = 1;} |
rogermcardell | 0:ea876cfd7385 | 61 | void CEC3InteruptRoutine() {CEC3INTFlag = 1;} |
rogermcardell | 0:ea876cfd7385 | 62 | void HDBaseTInterruptRoutine() |
rogermcardell | 0:ea876cfd7385 | 63 | { |
rogermcardell | 0:ea876cfd7385 | 64 | |
rogermcardell | 0:ea876cfd7385 | 65 | } |
rogermcardell | 0:ea876cfd7385 | 66 | void CheckButtons() |
rogermcardell | 0:ea876cfd7385 | 67 | { |
rogermcardell | 0:ea876cfd7385 | 68 | if (CEC0INTFlag) |
rogermcardell | 0:ea876cfd7385 | 69 | { |
rogermcardell | 0:ea876cfd7385 | 70 | CEC0INTFlag = 0; |
rogermcardell | 0:ea876cfd7385 | 71 | Button1Down(); |
rogermcardell | 0:ea876cfd7385 | 72 | } |
rogermcardell | 0:ea876cfd7385 | 73 | if (CEC1INTFlag) |
rogermcardell | 0:ea876cfd7385 | 74 | { |
rogermcardell | 0:ea876cfd7385 | 75 | CEC1INTFlag = 0; |
rogermcardell | 0:ea876cfd7385 | 76 | Button2Down(); |
rogermcardell | 0:ea876cfd7385 | 77 | } |
rogermcardell | 0:ea876cfd7385 | 78 | if (CEC2INTFlag) |
rogermcardell | 0:ea876cfd7385 | 79 | { |
rogermcardell | 0:ea876cfd7385 | 80 | CEC2INTFlag = 0; |
rogermcardell | 0:ea876cfd7385 | 81 | Button3Down(); |
rogermcardell | 0:ea876cfd7385 | 82 | } |
rogermcardell | 0:ea876cfd7385 | 83 | if (CEC3INTFlag) |
rogermcardell | 0:ea876cfd7385 | 84 | { |
rogermcardell | 0:ea876cfd7385 | 85 | CEC3INTFlag = 0; |
rogermcardell | 0:ea876cfd7385 | 86 | Button4Down(); |
rogermcardell | 0:ea876cfd7385 | 87 | } |
rogermcardell | 0:ea876cfd7385 | 88 | } |
rogermcardell | 0:ea876cfd7385 | 89 | void Button1Down() |
rogermcardell | 0:ea876cfd7385 | 90 | { |
rogermcardell | 0:ea876cfd7385 | 91 | aboxPort.printf("BUT 011\n"); |
rogermcardell | 0:ea876cfd7385 | 92 | } |
rogermcardell | 0:ea876cfd7385 | 93 | void Button2Down() |
rogermcardell | 0:ea876cfd7385 | 94 | { |
rogermcardell | 0:ea876cfd7385 | 95 | aboxPort.printf("BUT 021\n"); |
rogermcardell | 0:ea876cfd7385 | 96 | } |
rogermcardell | 0:ea876cfd7385 | 97 | void Button3Down() |
rogermcardell | 0:ea876cfd7385 | 98 | { |
rogermcardell | 0:ea876cfd7385 | 99 | aboxPort.printf("BUT 031\n"); |
rogermcardell | 0:ea876cfd7385 | 100 | } |
rogermcardell | 0:ea876cfd7385 | 101 | void Button4Down() |
rogermcardell | 0:ea876cfd7385 | 102 | { |
rogermcardell | 0:ea876cfd7385 | 103 | aboxPort.printf("BUT 041\n"); |
rogermcardell | 0:ea876cfd7385 | 104 | } |
rogermcardell | 0:ea876cfd7385 | 105 | |
rogermcardell | 0:ea876cfd7385 | 106 |