aa
Dependencies: mbed X_NUCLEO_IDB0XA1 SoftPWM USBDevice
main.cpp
- Committer:
- TakahitoNiino
- Date:
- 2020-04-07
- Revision:
- 0:604d4d2d331d
File content as of revision 0:604d4d2d331d:
#include "mbed.h" #include "SoftPWM.h" #define LED_ON 0 #define LED_OFF 1 #define TIME_5ms 5 #define TIME_10ms 10 #define TIME_50ms 50 #define TIME_100ms 100 #define TIME_500ms 500 #define TIME_1s 1000 Ticker flipper; // Tick Timer //DigitalOut led_r(PA_15); PwmOut led_r(PA_15); PwmOut led_g(PB_10); PwmOut led_b(PB_11); //SoftPWM led_r(PA_15); //DigitalOut mosi(PA_7,PullUp); //DigitalOut miso(PA_6,PullUp); //DigitalOut sck(PA_5,PullUp); SPI spi(PA_7,PA_6,PA_5); DigitalOut cs(PA_4); //DigitalOut rstble(PC_6,PullUp); DigitalOut rstble(PC_6); unsigned int syscnt = 0; // SystemCounter unsigned char flg_led = 0; unsigned char flg_cnt = 0; unsigned char flg_spi = 0; uint16_t cnt = 180; double ledr_duty; // LED-Red PWM duty double ledg_duty; // LED-Red PWM duty double ledb_duty; // LED-Red PWM duty void flip() { syscnt++; // increment SystemCounter syscnt = syscnt % 86400000; if(syscnt % TIME_5ms == 0) { flg_cnt = 1; } if(syscnt % TIME_500ms == 0) { flg_led = 1; } if(syscnt % TIME_1s == 0) { flg_spi = 1; } } int main() { // led_r = LED_OFF; // led_g = LED_OFF; // led_b = LED_OFF; // led_r.period(); // led_r.period_ms(1); // Set PWM Period 1ms // ledr_duty = 1.0f; // Set Duty 0 // led_r = ledr_duty; // Set LED-Red Duty // led_g.period_ms(1); // Set PWM Period 1ms // ledg_duty = 0.0f; // Set Duty 0 // led_g = ledr_duty; // Set LED-Red Duty // led_b.period_ms(1); // Set PWM Period 1ms // ledb_duty = 0.0f; // Set Duty 0 // led_b = ledr_duty; // Set LED-Red Duty spi.format(8,3); spi.frequency(2000000); cs = 1; rstble = 0; wait(0.2); rstble = 1; wait(0.2); flipper.attach_us(&flip, 1000); // TickerTime Set 1ms while(1) { if(flg_led) { flg_led = 0; // led_g = !led_g; } if(flg_cnt) { flg_cnt = 0; ledr_duty = (sin(double(cnt) / 180 * 3.14f) + 1 ) / 2; ledg_duty = (sin(double((cnt + 120) % 360) / 180 * 3.14f) + 1 ) / 2; ledb_duty = (sin(double((cnt + 240) % 360) / 180 * 3.14f) + 1 ) / 2; led_r = ledr_duty; // Set LED-Red Duty led_g = ledg_duty; // Set LED-Red Duty led_b = ledb_duty; // Set LED-Red Duty cnt++; cnt%=360; } if(flg_spi) { flg_spi = 0; spi.write(0x55); } } }