Aida Pločo Tarik Demirović

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 DigitalIn Ulaz1(dp9);
00004 DigitalIn Ulaz2(dp10);
00005 DigitalIn Ulaz3(dp11);
00006 DigitalIn Ulaz4(dp13);
00007 DigitalOut Izlaz1(dp2);
00008 DigitalOut Izlaz2(dp1);
00009 DigitalOut Izlaz3(dp28);
00010 DigitalOut Izlaz4(dp6);
00011 
00012 Ticker t1;
00013 Timer debounce;
00014 char ispis;
00015 
00016 Serial pc(USBTX, USBRX);
00017 
00018 char kojiJePritisnut()
00019 {
00020     Izlaz1 = 1;
00021     Izlaz2 = 0;
00022     Izlaz3 = 0;
00023     Izlaz4 = 0;
00024     if(Ulaz1){
00025             return '1';
00026         }
00027     if(Ulaz2){
00028             return '2';
00029         }
00030     if(Ulaz3){
00031             return '3';
00032         }
00033     if(Ulaz4){
00034             return 'A';
00035         }
00036         
00037     Izlaz1 = 0;
00038     Izlaz2 = 1;
00039     Izlaz3 = 0;
00040     Izlaz4 = 0;
00041     if(Ulaz1){
00042             return '4';
00043         }
00044     if(Ulaz2){
00045             return '5';
00046         }
00047     if(Ulaz3){
00048             return '6';
00049         }
00050     if(Ulaz4){
00051             return 'B';
00052         }
00053     
00054     Izlaz1 = 0;
00055     Izlaz2 = 0;
00056     Izlaz3 = 1;
00057     Izlaz4 = 0;
00058     if(Ulaz1){
00059             return '7';
00060         }
00061     if(Ulaz2){
00062             return '8';
00063         }
00064     if(Ulaz3){
00065             return '9';
00066         }
00067     if(Ulaz4){
00068             return 'C';
00069         }
00070     
00071     Izlaz1 = 0;
00072     Izlaz2 = 0;
00073     Izlaz3 = 0;
00074     Izlaz4 = 1;
00075     if(Ulaz1){
00076             return '\n'; //newline
00077         }
00078     if(Ulaz2){
00079             return '0';
00080         }
00081     if(Ulaz3){
00082             return '#';
00083         }
00084     if(Ulaz4){
00085             return 'D';
00086         }
00087     
00088     return 0;
00089 }
00090 
00091 void ocitajTast()
00092 {
00093     if(debounce.read_ms() < 200)
00094         return;
00095         
00096     ispis = kojiJePritisnut();
00097     if(ispis == 0)
00098         return;
00099     
00100     pc.putc(ispis);
00101     
00102     debounce.reset();
00103 }
00104 
00105 int main() {
00106     debounce.start();
00107     while(1)
00108         ocitajTast();
00109 }