|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef LED_H
- #define LED_H
-
- /*
- * File Purpose
- * The purpose of this file is to create a simple interface for turning on and off an led
- * And for threading led function so that you can make an led blink for a specified amount of duty at any frequency
- */
-
- #include <stdint.h>
- #include <TeensyThreads.h>
- #include "Runnable.h"
-
- class LED : public Runnable{
- private:
- // Digital pin
- uint8_t pin;
-
- // Track state so the program knows if the LED is ON or OFF
- bool state;
-
- // Timing Variables
- float duration;
- float period;
- float duty;
-
- // Thread object
- std::thread *blinkThread;
-
- protected:
- // Runnable function that we need to implement
- void runTarget(void *arg);
-
- public:
- // Constructor/Destructor
- LED(uint8_t pin);
- ~LED();
-
- // Turn on and off LED, volatile for threading use
- void turnOn() volatile;
- void turnOff() volatile;
-
- // Start thread that will last for duration
- void startBlinking(float duration, float period, float duty);
- };
-
- #endif // LED_H
|