Pavle Popovic 0494

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2019 ARM Limited
00003  * SPDX-License-Identifier: Apache-2.0
00004  */
00005 
00006 #include "mbed.h"//uvoz biblioteka
00007 
00008 #define SCALER 4900//definisanje direktiva
00009 
00010 AnalogIn pot1(PA_0);//glavne promenljive
00011 AnalogIn pot2(PA_1);
00012 PwmOut buzz(PA_11);
00013 InterruptIn sw1(PC_9);
00014 BusOut display(PA_10,PA_9,PA_8,PB_10,PB_5,PB_4,PB_3,PA_5);
00015 DigitalOut SEL2(PC_7);
00016 DigitalOut SEL1(PB_6);
00017 
00018 void ISR_sw1(void);//pomocne funkcije
00019 
00020 int main()//glavna funkcija
00021 {
00022     buzz.period_ms(1);
00023     sw1.fall(&ISR_sw1);
00024     while (true) {
00025         buzz.period_us(pot2.read()*SCALER+100);//kada stavim 50 pocetnu vrednost ne cuje se po cetak pa zato sam stavio 100us
00026         buzz.write(pot1.read());
00027         wait_ms(10);
00028     }
00029 }
00030 
00031 void ISR_sw1()//interrupt sub-routine
00032 {
00033         int i=pot1.read()*100;
00034         
00035             int d;
00036             int j;
00037             d=i/10;
00038             j=i%10;
00039         while(!sw1.read())
00040         {
00041             if(i<10)
00042         {
00043             SEL2.write(0);
00044             switch(i)
00045         {
00046            case 0:display.write(0xC0);break;
00047            case 1:display.write(0xF9);break;
00048            case 2:display.write(0xA4);break;
00049            case 3:display.write(0xB0);break;
00050            case 4:display.write(0x99);break;
00051            case 5:display.write(0x92);break;
00052            case 6:display.write(0x82);break;
00053            case 7:display.write(0xF8);break;
00054            case 8:display.write(0x80);break;
00055            case 9:display.write(0x90);break;
00056            
00057         }
00058         SEL2.write(1);
00059         wait_us(500);
00060         }
00061         else
00062         {
00063         SEL1.write(0);
00064         switch(d)
00065         {
00066            case 1:display.write(0xF9);break;
00067            case 2:display.write(0xA4);break;
00068            case 3:display.write(0xB0);break;
00069            case 4:display.write(0x99);break;
00070            case 5:display.write(0x92);break;
00071            case 6:display.write(0x82);break;
00072            case 7:display.write(0xF8);break;
00073            case 8:display.write(0x80);break;
00074            case 9:display.write(0x90);break;
00075            
00076         }
00077         wait_us(500);
00078         
00079         SEL1.write(1);
00080         
00081         SEL2.write(0);
00082         switch(j)
00083         {
00084            case 0:display.write(0xC0);break;
00085            case 1:display.write(0xF9);break;
00086            case 2:display.write(0xA4);break;
00087            case 3:display.write(0xB0);break;
00088            case 4:display.write(0x99);break;
00089            case 5:display.write(0x92);break;
00090            case 6:display.write(0x82);break;
00091            case 7:display.write(0xF8);break;
00092            case 8:display.write(0x80);break;
00093            case 9:display.write(0x90);break;
00094            
00095         }
00096         wait_us(500);
00097         SEL1.write(1);
00098         }
00099         }
00100         
00101         
00102 }