Iztech Fork

Dependencies:   mbed

Fork of A2_Interface3_V_0_0 by Roger McArdell

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002     Programmer: Roger McArdell
00003     Date: 01/08/2017
00004     Version 
00005     V0.1    First version
00006 
00007 */
00008 #include <string>
00009 #include "mbed.h"
00010 #include "Pins.h"
00011 #include "Matrix.h"
00012 #include "BoardComms.h"
00013 #include "Timers.h"
00014 
00015 
00016 // Prototypes
00017 void CEC0InteruptRoutine();
00018 void CEC1InteruptRoutine();
00019 void CEC2InteruptRoutine();
00020 void CEC3InteruptRoutine();
00021 void HDBaseTInterruptRoutine();
00022 void CheckButtons();
00023 void Button1Down(); 
00024 void Button2Down();
00025 void Button3Down();
00026 void Button4Down();
00027 void Setup();
00028 
00029 DigitalOut CECReset0(P0_12, 1);
00030 
00031 int main() 
00032 {
00033     Setup();
00034     
00035     printf("Program Started\r\n");
00036     while(1) 
00037     {
00038         TimeLoop();
00039         if (pc.readable())
00040             CheckForData();
00041         if (CEC0INTFlag || CEC1INTFlag || CEC2INTFlag || CEC3INTFlag)
00042             CheckButtons();
00043         if (aboxPort.readable())
00044             CheckaboxData(); 
00045     }
00046 }
00047 void Setup()
00048 {
00049     CECBoot0 = 1;
00050     CECBoot1 = 1;
00051     CECBoot2 = 1;
00052     CECBoot3 = 1;
00053     //CECReset0 = 1;
00054     CECReset1 = 1;
00055     CECReset2 = 1;
00056     CECReset3 = 1;
00057     aboxPort.baud(9600);
00058     AUXPort.baud(9600);
00059     TimeLoopSetup();
00060     // Attach Interrupts
00061     HDBaseTINT.rise(&HDBaseTInterruptRoutine);
00062     CECINT0.rise(&CEC0InteruptRoutine);
00063     CECINT1.rise(&CEC1InteruptRoutine);
00064     CECINT2.rise(&CEC2InteruptRoutine);
00065     CECINT3.rise(&CEC3InteruptRoutine);
00066 }
00067 
00068 void CEC0InteruptRoutine() {CEC0INTFlag = 1;}
00069 void CEC1InteruptRoutine() {CEC1INTFlag = 1;}
00070 void CEC2InteruptRoutine() {CEC2INTFlag = 1;}
00071 void CEC3InteruptRoutine() {CEC3INTFlag = 1;}
00072 void HDBaseTInterruptRoutine()
00073 {
00074     
00075 }
00076 void CheckButtons()
00077 {
00078     if (CEC0INTFlag)
00079     {
00080         CEC0INTFlag = 0;
00081         Button1Down();   
00082     }   
00083     if (CEC1INTFlag)
00084     {
00085         CEC1INTFlag = 0;
00086         Button2Down();   
00087     }  
00088     if (CEC2INTFlag)
00089     {
00090         CEC2INTFlag = 0;
00091         Button3Down();   
00092     }  
00093     if (CEC3INTFlag)
00094     {
00095         CEC3INTFlag = 0;
00096         Button4Down();   
00097     }  
00098 }
00099 void Button1Down()
00100 {
00101     aboxPort.printf("BUT 011\n");   
00102 }
00103 void Button2Down()
00104 {
00105     aboxPort.printf("BUT 021\n");
00106 }
00107 void Button3Down()
00108 {
00109     aboxPort.printf("BUT 031\n");
00110 }
00111 void Button4Down()
00112 {
00113     aboxPort.printf("BUT 041\n");
00114 }
00115 
00116