2532
Dependencies: QEI WS2812 PixelArray DFPlayerMini MODSERIAL PCA9685_ pca9685
Diff: main.cpp
- Revision:
- 0:474fb16588bf
- Child:
- 2:ed1f45f9b06a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jun 02 14:42:26 2019 +0000 @@ -0,0 +1,92 @@ +/* mbed Microcontroller Library + * Copyright (c) 2018 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +#include "stats_report.h" +#include "PCA9685.h" +#include "QEI.h" +#include "WS2812.h" +#include "PixelArray.h" +#include "DebounceIn.h" + + +//InterruptIn int0 (PB_0); +//enc pb2 pb4 +//zero pb5 +DebounceIn zerosens(PB_6); +QEI enc(PB_2,PB_4,NC,1); +I2C i2c (PB_9,PB_8); +PCA9685 pwmouts(0x40<<1,i2c,500); +WS2812 ws(PB_15,500, 0, 18, 10, 15); +PixelArray px(500); +DigitalOut led1(LED1); + +#define SLEEP_TIME 200 // (msec) +#define PRINT_AFTER_N_LOOPS 20 +#define REVCNT 500 + +void int0f (void) +{ + led1=!led1; +} +void encworker() +{ + printf("hello encoder\n"); + int pos=0; + int pos_=0; + int npos=0; + int lastdirection=0; + while(1) + { + if (zerosens.ntrig()) + { + printf("zero\n"); + npos=enc.getPulses(); + enc.reset(); + } + pos=enc.getPulses(); + + printf("pos: %d \t%d \t%d\n",pos,npos,zerosens.read()); + wait(0.1); + } +} +void ledworker() +{ + printf("hello leds\n"); + + ws.useII(WS2812::OFF); // use no intensity scaling + Timer t; + t.start(); + while(1) + { + int p=(enc.getPulses()%160)/10; + for (uint8_t i=0; i<15; i++) + { + if (i==p) pwmouts.set_pwm_duty(i,1); else pwmouts.set_pwm_duty(i,0); + } + px.SetAll(3000000+t.read_ms()); + + //ws.write(px.getBuf()); + wait(0.02); + } +} +int main() +{ + Thread ledsthread; + Thread encthread; + + ledsthread.start(ledworker); + encthread.start(encworker); + printf("hello\n"); + pwmouts.init(); + float v=0; + Timer t; + t.start(); + while (true) + { + wait(10); + printf("TITS!\n (.)(.)\n"); + } +}