Iztech Fork

Dependencies:   mbed

Fork of A2_Interface3_V_0_0 by Roger McArdell

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?

UserRevisionLine numberNew 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