Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- **************************************************************************
- //
- // Demo program for labs
- //
- // Subject: Computer Architectures and Parallel systems
- // Author: Petr Olivka, petr.olivka@vsb.cz, 09/2019
- // Organization: Department of Computer Science, FEECS,
- // VSB-Technical University of Ostrava, CZ
- //
- // File: Demo program
- //
- // **************************************************************************
- #include "mbed.h"
- //void demo_leds();
- //void demo_lcd();
- //void demo_i2c();
- // DO NOT REMOVE OR RENAME FOLLOWING GLOBAL VARIABLES!!
- // Serial line for printf output
- Serial g_pc(USBTX, USBRX);
- // LEDs on K64F-KIT - instances of class DigitalOut
- /*DigitalOut g_led1(PTA1);
- DigitalOut g_led2(PTA2);
- // Buttons on K64F-KIT - instances of class DigitalIn
- DigitalIn g_but9(PTC9);
- DigitalIn g_but10(PTC10);
- DigitalIn g_but11(PTC11);
- DigitalIn g_but12(PTC12);*/
- //Inicialization of leds
- DigitalOut l_b(PTB2);
- DigitalOut l_g(PTB3);
- DigitalOut l_r(PTB9);
- DigitalOut r_b(PTB11);
- DigitalOut r_g(PTB18);
- DigitalOut r_r(PTB19);
- //Inicialization of buttons
- DigitalIn g_swi1(PTC9);
- DigitalIn g_swi2(PTC10);
- DigitalIn g_swi3(PTC11);
- DigitalIn g_swi4(PTC12);
- unsigned int c = 0;
- //unsigned int changed[8] ={0, 0, 0, 0, 0, 0, 0, 0};
- //unsigned int choosen_led = 0;
- unsigned int switch_pressed = 0;
- unsigned int b[3] = { 100, 100,100 };
- unsigned int choosen_colour = 0;
- void count()
- {
- c++;
- }
- void bright(DigitalOut led_l, DigitalOut led_r, unsigned int i)
- {
- if ((c % 100)<b[i])
- led_l = 1;
- else
- led_l = 0;
- if ((c % 100)<(100 - b[i]))
- led_r = 1;
- else
- led_r = 0;
- }
- void swi()
- {
- if (g_swi1 == 0 && g_swi2 == 1)
- {
- choosen_colour = 0; //blue
- switch_pressed = c;
- }
- else if (g_swi2 == 0 && g_swi1 == 1)
- {
- choosen_colour = 1; //green
- switch_pressed = c;
- }
- else if (g_swi2 == 0 && g_swi1 == 0)
- {
- choosen_colour = 2; //red
- switch_pressed = c;
- }
- else if (g_swi3 == 0 && b[choosen_colour]>0)
- {
- b[choosen_colour] = b[choosen_colour] - 10; // lower brightness on left led
- switch_pressed = c;
- }
- else if (g_swi4 == 0 && b[choosen_colour]<100)
- {
- b[choosen_colour] = b[choosen_colour] + 10; // raise brightness on left led
- switch_pressed = c;
- }
- }
- void bright2(unsigned int perc, DigitalOut led)
- {
- if ((c % 100)<perc)
- led = 1;
- else
- led = 0;
- }
- void Orange(DigitalOut R, DigitalOut G, DigitalOut B)
- {
- R = bright2(100, R);
- G = bright2(27, G);
- B = bright2(0, B);
- }
- int main()
- {
- Ticker t1;
- DigitalOut l[3] = { l_b, l_g, l_r };
- DigitalOut r[3] = { r_b, r_g, r_r };
- t1.attach_us(callback(count), 100);
- while (1)
- {
- //for (int i = 0; i <3; i++)
- //{
- Orange(l[2], l[1], l[0]);
- Orange(r[2], r[1], r[0]);
- //}
- if ((switch_pressed + 1000) < c)
- swi();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement