12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef ROWPORT_AVR_OPTIC_H
- #define ROWPORT_AVR_OPTIC_H
- #include <Arduino.h>
- #include <inttypes.h>
- #include <RowPort.h>
-
- /* One AVR microcontroller port connected to matrix rows.
-
- setActivePinHigh() has a delay to allow phototransistors time to sense strobe
- (DodoHand has optic switches with phototransistors).
-
- Instantiation
- ------------
- The constructor configures all pins of port as output (for strobe pins and LED).
- The 'x' in parameters DDRx, PORTx, and PINx should all be the same letter.
-
- Example instantiation for row port F:
- RowPort_AVR_Optic rowPortF(DDRF, PORTF);
-
- Diode orientation
- ----------------
- Rows, columns, and diode orientation are explained in Matrix.h
-
- */
- class RowPort_AVR_Optic : public RowPort
- {
- private:
- const volatile unsigned char& DDR; //Data Direction Register
-
- protected:
- volatile unsigned char& PORT; //PORT register
-
- public:
- //The constructor initialization list is in .cpp
- RowPort_AVR_Optic(volatile unsigned char& DDRx, volatile unsigned char& PORTx);
-
- virtual void setActivePinLow(const uint8_t activePin); //activePin is a port mask
- virtual void setActivePinHigh(const uint8_t activePin);
- };
- #endif
|