Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "mbed.h"
- Serial pc( USBTX, USBRX );
- int main()
- {
- pc.baud( 115200 );
- DigitalOut leds[] = {PTC0, PTC1, PTC2, PTC3, PTC4, PTC5, PTC7, PTC8};
- float brightness[] = {0, 0.25, 0.50, 1, 0.50, 0.25, 0, 0};
- float T = 15;
- DigitalIn btn_left( PTC9 );
- DigitalIn btn_right( PTC10 );
- DigitalIn speed_down( PTC11 );
- DigitalIn speed_up( PTC12 );
- bool speed_down_pressed = false;
- bool speed_up_pressed = false;
- int direction = 1;
- int speed = 25;
- long long counter = 0;
- while(1) {
- for(float i = 0; i < T; i+=1) {
- for(int j = 0; j < 8; j++) {
- if(i < (T * brightness[j])) {
- leds[j] = true;
- } else {
- leds[j] = false;
- }
- }
- wait_ms(1);
- }
- if(counter % speed == 0) {
- if(direction == -1) {
- float tmp = brightness[0];
- for(int i = 0; i < 7; i++) {
- brightness[i] = brightness[i + 1];
- }
- brightness[7] = tmp;
- } else if(direction == 1) {
- float tmp = brightness[7];
- for(int i = 7; i > 0; i--) {
- brightness[i] = brightness[i - 1];
- }
- brightness[0] = tmp;
- }
- }
- if(!btn_left) {
- direction = -1;
- }
- if(!btn_right) {
- direction = 1;
- }
- if(!speed_up) {
- speed_up_pressed = true;
- }
- if(!speed_down) {
- speed_down_pressed = true;
- }
- if(counter % 20 == 0) {
- if(speed_up_pressed) {
- speed--;
- speed_up_pressed = false;
- }
- if(speed_down_pressed) {
- speed++;
- speed_down_pressed = false;
- }
- }
- counter++;
- }
- }
Add Comment
Please, Sign In to add comment