.Scanlinesmapping Property |
Top Previous Next |
Function: |
Defines the list of up to 8 I/O lines that will serve as scan lines of the keypad matrix. |
Type: |
String |
Value Range: |
Up to eight comma-separated I/O line numbers can be listed. Default= "". |
See Also: |
Possible Keypad Configurations, Preparing the Keypad for Operation, kp.scanlinesmapping |
Details
This property should contain a comma-separated list of I/O lines numbers, for example: "28, 30, 31". Line numbers correspond to those of the pl_io_num enum. This enum is platform-specific. The declarations for the pl_io_num can be found in the "Platform-dependent Constants" section of your device's platform documentation (for example, EM1000's is here).
The kp.scanlinesmapping string should only contain a list of decimal numbers. That is, use "28" and not "28- PL_IO_NUM_28". Only numerical characters are processed anyway -- writing "28- PL_IO_NUM_28,30-PL_IO_NUM_30" will set this property to "28,30". You can, of course, write str(28- PL_IO_NUM_28)+","+str(30-PL_IO_NUM_30) as well.
The order in which you list the scan lines does matter -- this is the order in which the lines will be numbered. All keys connected to the first scan line will have their scan field (bits 7-4) of the key code set to 0. For keys connected to the second line this field will contain 1, third line -- 2, and so on.
On platforms with output buffer control, all intended scan lines should be configured as outputs by your application (see io.num, io.enabled).
This property can only be changed when the keypad is disabled (kp.enabled= 0- NO). Setting the property to "" means that the keypad will have no scan lines, which is also a valid keypad configuration.
Scan lines of the keypad should be separate from the return lines (see kp.returnlinesmapping). The keypad will not work properly if you designate any I/O line as both the scan line and return line.