Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:13d958280f5f, 2021-11-13 (annotated)
- Committer:
- miketa123
- Date:
- Sat Nov 13 09:16:24 2021 +0000
- Revision:
- 0:13d958280f5f
Mihailo Radivojevic 0436/2018
Who changed what in which revision?
| User | Revision | Line number | New 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 |