diff options
Diffstat (limited to 'pin.h')
-rw-r--r-- | pin.h | 83 |
1 files changed, 0 insertions, 83 deletions
@@ -1,83 +0,0 @@ -#ifndef PIN_H -#define PIN_H - -#include "gpio.h" - -class GPIO { - private: - GPIO_t& g; - int n; - - public: - GPIO(GPIO_t& gpio, int pin) : g(gpio), n(pin) {} - - void on() { - g.BSRR = 1 << n; - } - - void off() { - g.BSRR = 1 << 16 << n; - } - - void toggle() { - if(g.ODR & (1 << n)) { - off(); - } else { - on(); - } - } -}; - -template <class... Ts> -class Pin : public Ts... { - public: - Pin(GPIO_t& gpio, int pin) : Ts(gpio, pin)... {} -}; -/* -template <int n> -struct U { - struct RX; - struct TX; -}; - -typedef U<1> U1; -typedef U<2> U2; -typedef U<3> U3; - -template <class P, class F> -class AF { - public: - AF(GPIO_t& gpio, int pin) {} -}; - -template <int AFn, class P, class F> -class Remap : public AF<P, F> { - public: - Remap(GPIO_t& gpio, int pin) : AF<P, F>(gpio, pin) {} -}; - -class Kake { - public: - template <class U> - Kake(AF<U, class U::RX> rxpin, AF<U, class U::TX> txpin) {} - - template <class U> - Kake(const U&&, AF<U, class U::RX> rxpin, AF<U, class U::TX> txpin) {} -}; - -static Pin<GPIO, Remap<7, U1, U1::RX>> PB6(GPIOB, 6); -static Pin<GPIO, Remap<7, U1, U1::TX>> PB7(GPIOB, 7); - -static Pin<GPIO, Remap<7, U2, U2::RX>, AF<U3, U3::RX>> PB8(GPIOB, 8); -static Pin<GPIO, Remap<7, U2, U2::TX>, AF<U3, U3::TX>> PB9(GPIOB, 9); -*/ - -static Pin<GPIO> PD12(GPIOD, 12); -static Pin<GPIO> PD13(GPIOD, 13); -static Pin<GPIO> PD14(GPIOD, 14); -static Pin<GPIO> PD15(GPIOD, 15); -/* -Kake f1(PB6, PB7); -Kake f2(PB8, PB9); -*/ -#endif |