Vjezba 2 sa komentarima bez 4. zadatka
Dependencies: mbed
Fork of KTM_vjezba2 by
mjerenje_trajanja_AD_pretvorbe.cpp@1:af669fa89346, 2016-11-05 (annotated)
- Committer:
- JosipLupinski
- Date:
- Sat Nov 05 19:40:36 2016 +0000
- Revision:
- 1:af669fa89346
- Parent:
- 0:2cc3c591f993
KTM vjezba 2 sa komentarima bez 4. i dodatnih zadataka. WIP
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JosipLupinski | 0:2cc3c591f993 | 1 | #include "mbed.h" |
JosipLupinski | 0:2cc3c591f993 | 2 | |
JosipLupinski | 0:2cc3c591f993 | 3 | /* |
JosipLupinski | 0:2cc3c591f993 | 4 | vrijeme AD pretvorbe iznosi 20.85us |
JosipLupinski | 0:2cc3c591f993 | 5 | AD pretvorba LPC 1768 ima 12 bitnu rezoluciju i max frekvencija osvježenja je 200Hz |
JosipLupinski | 0:2cc3c591f993 | 6 | |
JosipLupinski | 0:2cc3c591f993 | 7 | vrijeme AD pretvorbe bi trebala iznositi 5us, ali zbog funkcije read() radi tri puta uzorkovanje |
JosipLupinski | 0:2cc3c591f993 | 8 | pa vraća srednju vrijednost, to uzima barem 15us, ostatak je nesavršenost i ostatak operacija |
JosipLupinski | 0:2cc3c591f993 | 9 | |
JosipLupinski | 0:2cc3c591f993 | 10 | */ |
JosipLupinski | 0:2cc3c591f993 | 11 | |
JosipLupinski | 0:2cc3c591f993 | 12 | AnalogIn Ain(p20); //definira analogni ulaz na pinu 20 |
JosipLupinski | 0:2cc3c591f993 | 13 | DigitalOut led(LED1); //signalizacijska ledica |
JosipLupinski | 0:2cc3c591f993 | 14 | Timer t; |
JosipLupinski | 0:2cc3c591f993 | 15 | Serial pc(USBTX, USBRX); // serijska komunikacija prema racunalu |
JosipLupinski | 0:2cc3c591f993 | 16 | |
JosipLupinski | 0:2cc3c591f993 | 17 | float ADCdata; |
JosipLupinski | 0:2cc3c591f993 | 18 | const int broj_pretvorbi = 100000; |
JosipLupinski | 0:2cc3c591f993 | 19 | |
JosipLupinski | 0:2cc3c591f993 | 20 | int main() { |
JosipLupinski | 1:af669fa89346 | 21 | |
JosipLupinski | 0:2cc3c591f993 | 22 | led = 1; |
JosipLupinski | 0:2cc3c591f993 | 23 | wait(0.2); |
JosipLupinski | 0:2cc3c591f993 | 24 | led = 0; |
JosipLupinski | 0:2cc3c591f993 | 25 | wait(0.5); |
JosipLupinski | 0:2cc3c591f993 | 26 | led = 1; |
JosipLupinski | 0:2cc3c591f993 | 27 | wait(0.2); |
JosipLupinski | 0:2cc3c591f993 | 28 | led = 0; |
JosipLupinski | 0:2cc3c591f993 | 29 | wait(2); |
JosipLupinski | 0:2cc3c591f993 | 30 | |
JosipLupinski | 0:2cc3c591f993 | 31 | while(true) { |
JosipLupinski | 1:af669fa89346 | 32 | |
JosipLupinski | 0:2cc3c591f993 | 33 | led = 1; |
JosipLupinski | 0:2cc3c591f993 | 34 | t.start(); //pokreni timer |
JosipLupinski | 0:2cc3c591f993 | 35 | |
JosipLupinski | 0:2cc3c591f993 | 36 | //zapocni pretvorbu i ponavljaj broj_pretvorbi puta |
JosipLupinski | 0:2cc3c591f993 | 37 | for( int i= 0; i<broj_pretvorbi; i++) { |
JosipLupinski | 0:2cc3c591f993 | 38 | |
JosipLupinski | 0:2cc3c591f993 | 39 | ADCdata = Ain; //pokreni AD pretvorbu i pohrani uzorkovanu vrijednost napona u varijablu ADCdata |
JosipLupinski | 0:2cc3c591f993 | 40 | |
JosipLupinski | 0:2cc3c591f993 | 41 | } |
JosipLupinski | 0:2cc3c591f993 | 42 | |
JosipLupinski | 0:2cc3c591f993 | 43 | t.stop(); //zaustavi timer |
JosipLupinski | 0:2cc3c591f993 | 44 | led = 0; |
JosipLupinski | 0:2cc3c591f993 | 45 | |
JosipLupinski | 0:2cc3c591f993 | 46 | pc.printf("Vrijeme jedne pretvorbe: %.2f us \n",(float)t.read_us()/broj_pretvorbi); |
JosipLupinski | 0:2cc3c591f993 | 47 | t.reset(); //resetiraj timer na nulu |
JosipLupinski | 0:2cc3c591f993 | 48 | |
JosipLupinski | 0:2cc3c591f993 | 49 | //signalizacijske ledice |
JosipLupinski | 0:2cc3c591f993 | 50 | wait(2); |
JosipLupinski | 0:2cc3c591f993 | 51 | led = 1; |
JosipLupinski | 0:2cc3c591f993 | 52 | wait(0.2); |
JosipLupinski | 0:2cc3c591f993 | 53 | led = 0; |
JosipLupinski | 0:2cc3c591f993 | 54 | wait(0.5); |
JosipLupinski | 0:2cc3c591f993 | 55 | led = 1; |
JosipLupinski | 0:2cc3c591f993 | 56 | wait(0.2); |
JosipLupinski | 0:2cc3c591f993 | 57 | led = 0; |
JosipLupinski | 0:2cc3c591f993 | 58 | wait(2); |
JosipLupinski | 0:2cc3c591f993 | 59 | } |
JosipLupinski | 0:2cc3c591f993 | 60 | } |