filipf filipf / Mbed 2 deprecated 19E042PIM_T2_2020_0414

Dependencies:   mbed

main.cpp

Committer:
filipf
Date:
2021-11-13
Revision:
1:a57db6defeb7
Parent:
0:8f42a78545ac
Child:
2:d8d90bd09dc8

File content as of revision 1:a57db6defeb7:

/* Prikazana vrednost ne odgovara onome što se moze čuti jer zuja.write() ne prima
baš sve vrednosti. Na primer, na displeju nećemo videti razliku od 0.005 ali je
cuti jer je displej na dve decimale.
*/

//uboz biblioteka
#include "mbed.h"

//definisanje direktiva

//definisanje glavnih promenljivih
AnalogIn pot1(PA_1);
AnalogIn pot2(PA_0);
PwmOut zuja(PA_11);
InterruptIn taster(PC_9);

float frekvPoc = 5000;
float frekv = frekvPoc*pot1.read() + 100;
float i = 0.0;

BusOut Digits(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3, PB_6, PC_7);
int odNulaDo15[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 };
int odNulaDo15Desetice[] = { 0xFF, 0x179, 0x124, 0x130, 0x119, 0x112, 0x102, 0x178, 0x100, 0x110 };
int desetice = 0;
int jedinice = 0;
int kreni = 0;


//pomocne funkcije
void prikaziJacinu();

//glavna funkcija
int main() {
    
    zuja.period( 1.0/( frekv ) );
    zuja.write( pot2.read() );
    taster.fall( &prikaziJacinu );
    
    //glavna petlja
    while(1) {
        
        frekv = frekvPoc*pot1.read() + 100;
        
        zuja.period( 1/( frekv ) );
        zuja.write( pot2.read() );

        if (kreni==0) {Digits = 0x17F;wait_ms(20);continue;}
        else { Digits = odNulaDo15[jedinice];}
        wait_ms(10);
        Digits = odNulaDo15Desetice[desetice];
        wait_ms(10);
    }
}
void prikaziJacinu() {
    kreni = 1;
    
    jedinice = (int)(pot2.read()*100)%10;
    desetice = floor( (pot2.read()*10) );
}