Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of RA8875 by
Diff: RA8875.h
- Revision:
- 71:dcac8efd842d
- Parent:
- 68:ab08efabfc88
- Child:
- 72:ecffe56af969
--- a/RA8875.h Sun Aug 31 15:58:15 2014 +0000 +++ b/RA8875.h Sat Oct 04 17:45:50 2014 +0000 @@ -343,7 +343,7 @@ /// @param[inout] y is the y position where the touch was registered. /// @returns true if touch was detected, in which case the x and y values were set. /// - unsigned char TouchPanelRead(loc_t *x, loc_t *y); + uint8_t TouchPanelRead(loc_t *x, loc_t *y); /// Poll the TouchPanel and on a touch event return the raw x, y coordinates. /// @@ -351,7 +351,7 @@ /// @param[inout] y is the y position where the touch was registered. /// @returns true if touch was detected, in which case the x and y values were set. /// - unsigned char TouchPanelReadRaw(loc_t *x, loc_t *y); + uint8_t TouchPanelReadRaw(loc_t *x, loc_t *y); /// Append interrupt handler for specific RA8875 interrupt source /// @@ -378,6 +378,64 @@ /// void UnAppendISR(uint8_t bISRType); + + /// Initialize the keypad interface on the RA8875 controller. + /// + /// Enables the keypad subsystem. It will scan the 4 x 5 matrix + /// and make available key presses. + /// + /// @note See section 5-13 of RAIO RA8875 data sheet for more details. + /// @caution When using the display from buy-display.com, be sure that + /// the option for the keypad is configured on the hardware. + /// + /// All parameters are optional. + /// @param[in] scanEnable, when true, enables the key scan function (default: true). + /// @param[in] longDetect, when true, additionally enables the long key held detection (default: false). + /// @param[in] sampleTime setting (range: 0 - 3, default: 0). + /// @param[in] scanFrequency setting (range: 0 - 7, default: 0). + /// @param[in] longTimeAdjustment (range: 0 - 3, default: 0). + /// @param[in] interruptEnable, when true, enables interrupts from keypress (default: false). + /// @param[in] wakeupEnable, when true, activates the wakeup function (default: false). + /// + /// @returns success/failure code. @see RetCode_t. + /// + RetCode_t KeypadInit(bool scanEnable = true, bool longDetect = false, + uint8_t sampleTime = 0, uint8_t scanFrequency = 0, + uint8_t longTimeAdjustment = 0, + bool interruptEnable = false, bool wakeupEnable = false); + + /// Determine if a key has been hit + /// + /// @returns true if a key has been hit + /// + bool _kbhit(); + + /// Blocking read of the keypad. + /// + /// @caution: This is a blocking read, so it is important to first call _kbhit() + /// to avoid hanging your processes. + /// + /// A keypad connected to the RA8875 is connected in a matrix of 4 rows and 5 columns. + /// The row where a key is pressed is returned in the lower 2 bits of the upper nibble, + /// and the column where a key is pressed is returned in the lower 3 bits of the lower nibble. + /// + /// Additionally, if configured to detect a "long press", bit 7 will be set to indicate + /// this. In this situation, first a "normal press" would be detected and signaled and + /// soon after that a "long press" of the same key would be detected and communicated. + /// + /// Return value encoding: LxRR xCCC + /// L = Long Press was detected + /// RR = Row number 0 to 3 + /// + /// @return 8-bit value coded as L0RR 0CCC: + /// - L = 1 = Long Press detected + /// - x = 0 = not used + /// - R = 0-3 = Row Number + /// - C = 0-4 = Column Number + /// + uint8_t _getch(); + + /// Write a command to the display with a word of data. /// /// This is a high level command, and may invoke several primitives.