Mihailo Radivojević / Mbed 2 deprecated 19E042PIM_T2_2018_0436

Dependencies:   mbed

Committer:
miketa123
Date:
Sat Nov 13 09:16:24 2021 +0000
Revision:
0:13d958280f5f
Mihailo Radivojevic 0436/2018

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miketa123 0:13d958280f5f 1 /*
miketa123 0:13d958280f5f 2 * Mihailo Radivojevic 2018/0436
miketa123 0:13d958280f5f 3 */
miketa123 0:13d958280f5f 4
miketa123 0:13d958280f5f 5 /*
miketa123 0:13d958280f5f 6 * Uvoz biblioteka
miketa123 0:13d958280f5f 7 */
miketa123 0:13d958280f5f 8 #include "mbed.h"
miketa123 0:13d958280f5f 9
miketa123 0:13d958280f5f 10 /*
miketa123 0:13d958280f5f 11 * Definisanje makroa
miketa123 0:13d958280f5f 12 */
miketa123 0:13d958280f5f 13
miketa123 0:13d958280f5f 14 #define VOLTAGE_SCALE 3.3f
miketa123 0:13d958280f5f 15 #define STARTHZ 200
miketa123 0:13d958280f5f 16 #define STEPHZ 200
miketa123 0:13d958280f5f 17 #define STEPV 0.01f
miketa123 0:13d958280f5f 18 #define REC 1
miketa123 0:13d958280f5f 19 #define US 1000000
miketa123 0:13d958280f5f 20 #define PAUSEMS 50
miketa123 0:13d958280f5f 21 #define PERCENT 100
miketa123 0:13d958280f5f 22 #define SEL_OFF 1
miketa123 0:13d958280f5f 23 #define SEL_ON 0
miketa123 0:13d958280f5f 24 #define PAUSE 50 //ms
miketa123 0:13d958280f5f 25 #define PAUSE2 10 //ms
miketa123 0:13d958280f5f 26
miketa123 0:13d958280f5f 27 /*
miketa123 0:13d958280f5f 28 * Globalne promenljive
miketa123 0:13d958280f5f 29 */
miketa123 0:13d958280f5f 30 AnalogIn pot1(PA_0);
miketa123 0:13d958280f5f 31 AnalogIn pot2(PA_1);
miketa123 0:13d958280f5f 32 PwmOut zzz(PA_11);
miketa123 0:13d958280f5f 33 InterruptIn sw1(PC_9);
miketa123 0:13d958280f5f 34 BusOut display(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3, D0);
miketa123 0:13d958280f5f 35 DigitalOut sel2(PC_7);
miketa123 0:13d958280f5f 36 DigitalOut sel1(PB_6);
miketa123 0:13d958280f5f 37 int i;
miketa123 0:13d958280f5f 38 /*
miketa123 0:13d958280f5f 39 * Definisanje funkcija
miketa123 0:13d958280f5f 40 */
miketa123 0:13d958280f5f 41 void ISR_button (void);
miketa123 0:13d958280f5f 42 /*
miketa123 0:13d958280f5f 43 * Glavna funkcija
miketa123 0:13d958280f5f 44 */
miketa123 0:13d958280f5f 45 int main()
miketa123 0:13d958280f5f 46 {
miketa123 0:13d958280f5f 47 //Lokalne Promenljive
miketa123 0:13d958280f5f 48 static int brojevi[] {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
miketa123 0:13d958280f5f 49 static double periods, a;
miketa123 0:13d958280f5f 50 static int p, s;
miketa123 0:13d958280f5f 51
miketa123 0:13d958280f5f 52 //Funkcije koje se izvrsavaju samo jednom
miketa123 0:13d958280f5f 53 sw1.fall(&ISR_button);
miketa123 0:13d958280f5f 54 //Beskonacna petlja
miketa123 0:13d958280f5f 55 while (true) {
miketa123 0:13d958280f5f 56 a = pot2;
miketa123 0:13d958280f5f 57 periods = (REC / (STARTHZ + a * STEPHZ / STEPV)) * US;
miketa123 0:13d958280f5f 58 zzz.period_us(periods);
miketa123 0:13d958280f5f 59 zzz = pot1;
miketa123 0:13d958280f5f 60
miketa123 0:13d958280f5f 61 if (!sw1)
miketa123 0:13d958280f5f 62 {
miketa123 0:13d958280f5f 63 i = pot1*PERCENT;
miketa123 0:13d958280f5f 64 }
miketa123 0:13d958280f5f 65 if (i<10){
miketa123 0:13d958280f5f 66 sel2.write(SEL_ON);
miketa123 0:13d958280f5f 67 display.write(brojevi[i]);
miketa123 0:13d958280f5f 68 wait_ms(PAUSE);
miketa123 0:13d958280f5f 69 }
miketa123 0:13d958280f5f 70 else
miketa123 0:13d958280f5f 71 {
miketa123 0:13d958280f5f 72 p = i/10;
miketa123 0:13d958280f5f 73 s = i%10;
miketa123 0:13d958280f5f 74 sel1.write(SEL_ON);
miketa123 0:13d958280f5f 75 display.write(brojevi[p]);
miketa123 0:13d958280f5f 76 wait_ms(PAUSE2);
miketa123 0:13d958280f5f 77 sel1.write(SEL_OFF);
miketa123 0:13d958280f5f 78 sel2.write(SEL_ON);
miketa123 0:13d958280f5f 79 display.write(brojevi[s]);
miketa123 0:13d958280f5f 80 wait_ms(PAUSE2);
miketa123 0:13d958280f5f 81 sel2.write(SEL_OFF);
miketa123 0:13d958280f5f 82 }
miketa123 0:13d958280f5f 83
miketa123 0:13d958280f5f 84
miketa123 0:13d958280f5f 85 }
miketa123 0:13d958280f5f 86 }
miketa123 0:13d958280f5f 87
miketa123 0:13d958280f5f 88 /*
miketa123 0:13d958280f5f 89 * Definicija funkcija:
miketa123 0:13d958280f5f 90 */
miketa123 0:13d958280f5f 91 void ISR_button (){
miketa123 0:13d958280f5f 92 i = pot1*PERCENT;
miketa123 0:13d958280f5f 93
miketa123 0:13d958280f5f 94 }
miketa123 0:13d958280f5f 95
miketa123 0:13d958280f5f 96