filipf filipf / Mbed 2 deprecated 19E042PIM_T2_2020_0414

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* Prikazana vrednost ne odgovara onome što se moze čuti jer zuja.write() ne prima
00002 baš sve vrednosti. Na primer, na displeju nećemo videti razliku od 0.005 ali je
00003 cuti jer je displej na dve decimale.
00004 */
00005 
00006 //uboz biblioteka
00007 #include "mbed.h"
00008 
00009 //definisanje direktiva
00010 
00011 //definisanje glavnih promenljivih
00012 AnalogIn pot1(PA_1);
00013 AnalogIn pot2(PA_0);
00014 PwmOut zuja(PA_11);
00015 InterruptIn taster(PC_9);
00016 
00017 float frekvPoc = 19800;
00018 float frekv = frekvPoc*pot1.read() + 200;
00019 float i = 0.0;
00020 
00021 BusOut Digits(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3, PB_6, PC_7);
00022 int odNulaDo15[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 };
00023 int odNulaDo15Desetice[] = { 0xFF, 0x179, 0x124, 0x130, 0x119, 0x112, 0x102, 0x178, 0x100, 0x110 };
00024 int desetice = 0;
00025 int jedinice = 0;
00026 int kreni = 0;
00027 
00028 
00029 //pomocne funkcije
00030 void prikaziJacinu();
00031 
00032 //glavna funkcija
00033 int main() {
00034     
00035     taster.fall( &prikaziJacinu );
00036     
00037     //glavna petlja
00038     while(1) {
00039         
00040         frekv = frekvPoc*pot1.read() + 200;
00041         
00042         zuja.period( 1/( frekv ) );
00043         zuja.write( pot2.read() );
00044 
00045         if (kreni==0) {Digits = 0x17F;wait_ms(20);continue;}
00046         else { Digits = odNulaDo15[jedinice];}
00047         wait_ms(10);
00048         Digits = odNulaDo15Desetice[desetice];
00049         wait_ms(10);
00050     }
00051 }
00052 void prikaziJacinu() {
00053     kreni = 1;
00054     
00055     jedinice = (int)(pot2.read()*100)%10;
00056     desetice = floor( (pot2.read()*10) );
00057 }