Jump to content

Component: Combo (BL0114) (E-blocks 2): Difference between revisions

From Flowcode Help
SamT (talk | contribs)
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{| style="width:50%"
 
{| width="50%"
|-
|-
| width="20%" style="color: gray;" | Author
| width="20%" style="color:gray;" | Author
| Matrix TSL
| Matrix TSL
|-
|-
| width="20%" style="color: gray;" | Version
| width="20%" style="color:gray;" | Version
| 1.0 (Release)
| 1.0
|-
|-
| width="20%" style="color: gray;" | Category
| width="20%" style="color:gray;" | Category
| E-blocks 2
| E-blocks 2
|}
|}




==Combo component==
A component to drive the BL0114 Combo board including LEDs, Switches, LCD, 7-Segs  and analogue inputs.


==[[File:Component Icon d4c04ac8_bbcd_4981_8ce6_9d6c9bb1e26a.png|Image]] Combo (BL0114) component==
==Detailed description==
A component to drive the BL0114 Combo board including LEDs, Switches, LCD, 7-Segs
and analogue inputs.


Make sure both bank 0 and bank 1 are connected to the right ports in flowcode, which correspond to the ports the combo board is connected to on your E-blocks 2 upstream board. There are lots of component macros in flowcode 8, which you can use to read the input from one of the analog devices (potentiometer/LDR) as a byte or an integer, as well as doing many things with the LCD such as printing numbers, strings, formatted numbers or a character which corresponds to an inputted ascii value. There is also a component macro you can use to show a digit on one of the 7-segment displays. On the combo board there are also 16 switches and 16 LEDs, and in flowcode 8 there are component macros which can be used to read the state of a specified switch, or to set the state of a specified LED on the board. Before you can display anything on the LCD screen you must first put the ‘LCD_Start’ macro into the program.


==Examples==
''<span style="color:red;">No additional examples</span>''




==Downloadable macro reference==


===<span style="font-weight: normal;"><u><tt>Seg_ShowDigit</tt></u></span>===
Displays a digit on the 7-seg display


'''Parameters'''


:[[Variable Types|BYTE]] ''Digit''
::Which of the digits to change (0 - 3)


:[[Variable Types|BYTE]] ''Value''
::The value to display (0 - 9)


:[[Variable Types|BYTE]] ''DecimalPoint''
::Decides if the decimal point is lit




'''Return value'''
''No detailed description exists yet for this component''


:''This call does not return a value''
==Examples==




===<span style="font-weight: normal;"><u><tt>LCD_PrintFormattedNumber</tt></u></span>===
Creates a standard stopwatch with 0.01 second accuracy complete with start/stop/restart functionality.<br>
Will allow you to print a number up to 32-bits with signed or unsigned formatting.
Displays using the 7-segment displays on the BL0114 Combo<br>
Combo connected to Ports A and B<br>
A4 Start / Stop - A5 Reset<br>
{{Fcfile|BL0114_Combo_7-seg_Timer_PIC.fcfx|Combo 7-Seg Timer}}<br>


Signed = -2147483648 to 2147483647
==Macro reference==


Unsigned = 0 to 4294967295
===IO_GetPort===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_GetPort'''
|-
| colspan="2" | Reads the state of a single port&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Bank
|-
| colspan="2" | 0 = Top Bank of Switches, 1 = Bottom Bank of Switches&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Parameters'''


:[[Variable Types|ULONG]] ''Number''
===IO_GetSwitchState===
::Enter the number or variable to print to the LCD
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_GetSwitchState'''
|-
| colspan="2" | Reads the state of a single switch Returns: 0 = Switch not pressed, 1 = Switch pressed&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Bank
|-
| colspan="2" | 0 = Top Bank of Switches, 1 = Bottom Bank of Switches&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Switch
|-
| colspan="2" | 0 = SW0, 7 = SW7&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BOOL]] ''Format''
::0=Signed, 1=Unsigned


===IO_ReadAnalogAsByte===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_ReadAnalogAsByte'''
|-
| colspan="2" | Reads one of the analogue components as an byte value&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
|-
| colspan="2" | 0 = Light Sensor, 1 = Potentiometer&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Return value'''


:''This call does not return a value''
===IO_ReadAnalogAsInt===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_ReadAnalogAsInt'''
|-
| colspan="2" | Reads one of the analogue components as an Integer value&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
|-
| colspan="2" | 0 = Light Sensor, 1 = Potentiometer&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s16-icon.png]] - INT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




===<span style="font-weight: normal;"><u><tt>LCD_RemapCharacter</tt></u></span>===
===IO_SetLEDState===
Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters.  
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_SetLEDState'''
|-
| colspan="2" | Sets the state of a single LED&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Bank
|-
| colspan="2" | 0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | LED
|-
| colspan="2" | 0 = LED0, 7 = LED7&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | State
|-
| colspan="2" | 0 = Off, 1 = On&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map.


'''Parameters'''
===IO_SetPort===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IO_SetPort'''
|-
| colspan="2" | Sets the state of a single port&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Bank
|-
| colspan="2" | 0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Value
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BYTE]] ''RemapIdx''
::Remap Index, Range: 0 to (Remap Characters - 1)


:[[Variable Types|BYTE]] ''SearchCharacter''
===LCD_Clear===
::Character to look for a replace
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_Clear'''
|-
| colspan="2" | Clears the entire contents of the display.&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BYTE]] ''ReplacementCharacter''
::New character value to use in place of the search character.


===LCD_ClearLine===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_ClearLine'''
|-
| colspan="2" | Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Line
|-
| colspan="2" | The line to clear, zero being the first (top) line of the display&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Return value'''


:''This call does not return a value''
===LCD_Command===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_Command'''
|-
| colspan="2" | Use this method/macro to send a specific command to the LCD. Refer to the Matrix Multimedia EB006 datasheet for a list of supported instructions. For Non-Matrix LCD's refer to the manufacturers datasheet.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | instruction
|-
| colspan="2" | Send a defined command to the LCD Screen. See datasheet for supported commands.&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




===<span style="font-weight: normal;"><u><tt>LCD_ScrollDisplay</tt></u></span>===
===LCD_Cursor===
Scrolls the display left or right by a number of given positions.
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_Cursor'''
|-
| colspan="2" | Moves the cursor on the LCD Display&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | x
|-
| colspan="2" | Set the cursor position in the X plane, 0 is the left most cell&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | y
|-
| colspan="2" | Set the cursor position in the Y plane, 0 is the top most cell&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Parameters'''


:[[Variable Types|BYTE]] ''Position''
===LCD_PrintAscii===
::Holds the number of positions to shift the display
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_PrintAscii'''
|-
| colspan="2" | Takes the ascii value for a character and prints the character&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | character
|-
| colspan="2" | Holds an ascii value.&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BYTE]] ''Direction''
::0 = left, 1 = right


===LCD_PrintFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_PrintFloat'''
|-
| colspan="2" | Print a Float number rounded up to a specified amount of decimal places.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| width="90%" | Number
|-
| colspan="2" | Enter the number or variable to print to the LCD&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | DecimalPlaces
|-
| colspan="2" | Enter how many decimal places to round up to (1 - 6)&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Return value'''


:''This call does not return a value''
===LCD_PrintFormattedNumber===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_PrintFormattedNumber'''
|-
| colspan="2" | Will allow you to print a number up to 32-bits with signed or unsigned formatting. Signed = -2147483648 to 2147483647 Unsigned = 0 to 4294967295&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
| width="90%" | Number
|-
| colspan="2" | Enter the number or variable to print to the LCD&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Format
|-
| colspan="2" | 0=Signed, 1=Unsigned&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




===<span style="font-weight: normal;"><u><tt>IO_SetPort</tt></u></span>===
===LCD_PrintNumber===
Sets the state of a single port
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_PrintNumber'''
|-
| colspan="2" | Based on v5 macro, will allow you to print a number. This is limited to a signed-INT, -32768 to 32767&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| width="90%" | Number
|-
| colspan="2" | Enter the number or variable to print to the LCD&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Parameters'''


:[[Variable Types|BYTE]] ''Bank''
===LCD_PrintString===
::0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_PrintString'''
|-
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | Text
|-
| colspan="2" | Enter the text or variable to print to the LCD&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BYTE]] ''Value''


===LCD_RAMWrite===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_RAMWrite'''
|-
| colspan="2" | Modifies the internal memory of the LCD to allow for up to 8 customised characters to be created and stored in the device memory&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Index
|-
| colspan="2" | Values 0 to 7&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d0
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d1
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d2
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d3
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d4
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d5
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d6
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | d7
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Return value'''


:''This call does not return a value''
===LCD_RawSend===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_RawSend'''
|-
| colspan="2" | Sends data to the LCD display&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | data
|-
| colspan="2" | The data byte to send to the LCD&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | type
|-
| colspan="2" | A boolean to indicate command type: true to write data, false to write a command&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




===<span style="font-weight: normal;"><u><tt>IO_SetLEDState</tt></u></span>===
===LCD_RemapCharacter===
Sets the state of a single LED
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_RemapCharacter'''
|-
| colspan="2" | Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters.  The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | RemapIdx
|-
| colspan="2" | Remap Index, Range: 0 to (Remap Characters - 1)&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | SearchCharacter
|-
| colspan="2" | Character to look for a replace&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | ReplacementCharacter
|-
| colspan="2" | New character value to use in place of the search character.&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


'''Parameters'''


:[[Variable Types|BYTE]] ''Bank''
===LCD_ScrollDisplay===
::0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_ScrollDisplay'''
|-
| colspan="2" | Scrolls the display left or right by a number of given positions.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Position
|-
| colspan="2" | Holds the number of positions to shift the display&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Direction
|-
| colspan="2" | 0 = left, 1 = right&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:[[Variable Types|BYTE]] ''LED''
::0 = LED0, 7 = LED7


:[[Variable Types|BYTE]] ''State''
===LCD_Start===
::0 = Off, 1 = On
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LCD_Start'''
|-
| colspan="2" | Startup routine required by the hardware device. Automatically clears the display after initialising.&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




'''Return value'''
===Seg_ShowDigit===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Seg_ShowDigit'''
|-
| colspan="2" | Displays a digit on the 7-seg display &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Digit
|-
| colspan="2" | Which of the digits to change (0 - 3)&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Value
|-
| colspan="2" | The value to display (0 - 9)&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | DecimalPoint
|-
| colspan="2" | Decides if the decimal point is lit&nbsp;
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}


:''This call does not return a value''


 
===Seg_ShowSegments===
===<span style="font-weight: normal;"><u><tt>IO_GetPort</tt></u></span>===
{| class="mtx-class-macrotable wikitable"
Reads the state of a single port
|-
 
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
'''Parameters'''
| width="90%" class="mtx-class-macrohead" | '''Seg_ShowSegments'''
 
|-
:[[Variable Types|BYTE]] ''Bank''
| colspan="2" | Allows the individual segments of the display to be controlled. &nbsp;
::0 = Top Bank of Switches, 1 = Bottom Bank of Switches
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
'''Return value'''
| width="90%" | Digit
 
|-
:[[Variable Types|BYTE]]
| colspan="2" | Which of the digits to change (0 - 3)&nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
===<span style="font-weight: normal;"><u><tt>LCD_Cursor</tt></u></span>===
| width="90%" | Segments
Moves the cursor on the LCD Display
|-
 
| colspan="2" | 8-bit Binary value to set the segments, bit0 = segA, bit1 = segB...&nbsp;
'''Parameters'''
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
:[[Variable Types|BYTE]] ''x''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
::Set the cursor position in the X plane, 0 is the left most cell
|}
 
:[[Variable Types|BYTE]] ''y''
::Set the cursor position in the Y plane, 0 is the top most cell
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_Start</tt></u></span>===
Startup routine required by the hardware device.
 
Automatically clears the display after initialising.
 
'''Parameters'''
 
:''This macro has no parameters''
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_Command</tt></u></span>===
Use this method/macro to send a specific command to the LCD. Refer to the Matrix Multimedia EB006 datasheet for a list of supported instructions. For Non-Matrix LCD's refer to the manufacturers datasheet.
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''instruction''
::Send a defined command to the LCD Screen. See datasheet for supported commands.
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_RAMWrite</tt></u></span>===
Modifies the internal memory of the LCD to allow for up to 8 customised characters to be created and stored in the device memory
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''Index''
::Values 0 to 7
 
:[[Variable Types|BYTE]] ''d0''
 
:[[Variable Types|BYTE]] ''d1''
 
:[[Variable Types|BYTE]] ''d2''
 
:[[Variable Types|BYTE]] ''d3''
 
:[[Variable Types|BYTE]] ''d4''
 
:[[Variable Types|BYTE]] ''d5''
 
:[[Variable Types|BYTE]] ''d6''
 
:[[Variable Types|BYTE]] ''d7''
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>IO_ReadAnalogAsInt</tt></u></span>===
Reads one of the analogue components as an Integer value
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''Channel''
::0 = Light Sensor, 1 = Potentiometer
 
 
'''Return value'''
 
:[[Variable Types|INT]]
 
 
===<span style="font-weight: normal;"><u><tt>LCD_PrintString</tt></u></span>===
Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro
 
'''Parameters'''
 
:[[Variable Types|<- STRING]] ''Text''
::Enter the text or variable to print to the LCD
::''This parameter may be returned back to the caller''
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_ClearLine</tt></u></span>===
Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data.
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''Line''
::The line to clear, zero being the first (top) line of the display
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>IO_GetSwitchState</tt></u></span>===
Reads the state of a single switch
 
Returns: 0 = Switch not pressed, 1 = Switch pressed
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''Bank''
::0 = Top Bank of Switches, 1 = Bottom Bank of Switches
 
:[[Variable Types|BYTE]] ''Switch''
::0 = SW0, 7 = SW7
 
 
'''Return value'''
 
:[[Variable Types|BYTE]]
 
 
===<span style="font-weight: normal;"><u><tt>IO_ReadAnalogAsByte</tt></u></span>===
Reads one of the analogue components as an byte value
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''Channel''
::0 = Light Sensor, 1 = Potentiometer
 
 
'''Return value'''
 
:[[Variable Types|BYTE]]
 
 
===<span style="font-weight: normal;"><u><tt>LCD_PrintAscii</tt></u></span>===
Takes the ascii value for a character and prints the character
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''character''
::Holds an ascii value.
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_PrintNumber</tt></u></span>===
Based on v5 macro, will allow you to print a number. This is limited to a signed-INT, -32768 to 32767
 
'''Parameters'''
 
:[[Variable Types|INT]] ''Number''
::Enter the number or variable to print to the LCD
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_RawSend</tt></u></span>===
Sends data to the LCD display
 
'''Parameters'''
 
:[[Variable Types|BYTE]] ''data''
::The data byte to send to the LCD
 
:[[Variable Types|BOOL]] ''type''
::A boolean to indicate command type: true to write data, false to write a command
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
===<span style="font-weight: normal;"><u><tt>LCD_Clear</tt></u></span>===
Clears the entire contents of the display.
 
'''Parameters'''
 
:''This macro has no parameters''
 
 
'''Return value'''
 
:''This call does not return a value''
 
 
 
==Simulation macro reference==
 
''This component does not contain any simulation macros''




==Property reference==
==Property reference==
<span style="font-weight: normal;"><u>Connection Type</u></span>
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''ConnType''.
''<span style="color:red;">No additional information</span>''
<span style="font-weight: normal;"><u>Bank 0</u></span>
This property is of type ''Digital port byte'' and can be referenced with the variable name ''Bank0''.
''<span style="color:red;">No additional information</span>''


{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" class="mtx-class-macrohead" | '''Properties'''
|-
|-
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Connection Type
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Bank 0 Connections
|-
|-
| width="10%" align="center" | [[File:Fc9-type-19-icon.png]]
| width="90%" | Bank 0
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Bank 1 Connections
|-
|-
| width="10%" align="center" | [[File:Fc9-type-19-icon.png]]
| width="90%" | Bank 1
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Analog Connections
|-
|-
| width="10%" align="center" | [[File:Fc9-type-6-icon.png]]
| width="90%" | Light Sensor
|-
| colspan="2" | Light Sensor ADC channel Connected to Bank 0 pin 0 which is usually analog pin AN0.&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-type-6-icon.png]]
| width="90%" | Potentiometer
|-
| colspan="2" | Potentiometer ADC channel Connected to Bank 0 pin 1 which is usually analog pin AN1.&nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Simulation
|-
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| width="90%" | Analog Scope Traces
|-
| colspan="2" | Controls if traces are automatically added to the data recorder window for the analogue signals on the combo board.&nbsp;
|}


<span style="font-weight: normal;"><u>Bank 1</u></span>
==Component Source Code==


This property is of type ''Digital port byte'' and can be referenced with the variable name ''Bank1''.
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx]


''<span style="color:red;">No additional information</span>''
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx]

Latest revision as of 14:36, 13 July 2026

Author Matrix TSL
Version 1.0
Category E-blocks 2


Combo component

A component to drive the BL0114 Combo board including LEDs, Switches, LCD, 7-Segs and analogue inputs.

Detailed description

No detailed description exists yet for this component

Examples

Creates a standard stopwatch with 0.01 second accuracy complete with start/stop/restart functionality.
Displays using the 7-segment displays on the BL0114 Combo
Combo connected to Ports A and B
A4 Start / Stop - A5 Reset
Combo 7-Seg Timer

Macro reference

IO_GetPort

IO_GetPort
Reads the state of a single port 
- BYTE Bank
0 = Top Bank of Switches, 1 = Bottom Bank of Switches 
- BYTE Return


IO_GetSwitchState

IO_GetSwitchState
Reads the state of a single switch Returns: 0 = Switch not pressed, 1 = Switch pressed 
- BYTE Bank
0 = Top Bank of Switches, 1 = Bottom Bank of Switches 
- BYTE Switch
0 = SW0, 7 = SW7 
- BYTE Return


IO_ReadAnalogAsByte

IO_ReadAnalogAsByte
Reads one of the analogue components as an byte value 
- BYTE Channel
0 = Light Sensor, 1 = Potentiometer 
- BYTE Return


IO_ReadAnalogAsInt

IO_ReadAnalogAsInt
Reads one of the analogue components as an Integer value 
- BYTE Channel
0 = Light Sensor, 1 = Potentiometer 
- INT Return


IO_SetLEDState

IO_SetLEDState
Sets the state of a single LED 
- BYTE Bank
0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs 
- BYTE LED
0 = LED0, 7 = LED7 
- BYTE State
0 = Off, 1 = On 
- VOID Return


IO_SetPort

IO_SetPort
Sets the state of a single port 
- BYTE Bank
0 = Top Bank of LEDs, 1 = Bottom Bank of LEDs 
- BYTE Value
 
- VOID Return


LCD_Clear

LCD_Clear
Clears the entire contents of the display. 
- VOID Return


LCD_ClearLine

LCD_ClearLine
Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data. 
- BYTE Line
The line to clear, zero being the first (top) line of the display 
- VOID Return


LCD_Command

LCD_Command
Use this method/macro to send a specific command to the LCD. Refer to the Matrix Multimedia EB006 datasheet for a list of supported instructions. For Non-Matrix LCD's refer to the manufacturers datasheet. 
- BYTE instruction
Send a defined command to the LCD Screen. See datasheet for supported commands. 
- VOID Return


LCD_Cursor

LCD_Cursor
Moves the cursor on the LCD Display 
- BYTE x
Set the cursor position in the X plane, 0 is the left most cell 
- BYTE y
Set the cursor position in the Y plane, 0 is the top most cell 
- VOID Return


LCD_PrintAscii

LCD_PrintAscii
Takes the ascii value for a character and prints the character 
- BYTE character
Holds an ascii value. 
- VOID Return


LCD_PrintFloat

LCD_PrintFloat
Print a Float number rounded up to a specified amount of decimal places. 
- FLOAT Number
Enter the number or variable to print to the LCD 
- BYTE DecimalPlaces
Enter how many decimal places to round up to (1 - 6) 
- VOID Return


LCD_PrintFormattedNumber

LCD_PrintFormattedNumber
Will allow you to print a number up to 32-bits with signed or unsigned formatting. Signed = -2147483648 to 2147483647 Unsigned = 0 to 4294967295 
- ULONG Number
Enter the number or variable to print to the LCD 
- BOOL Format
0=Signed, 1=Unsigned 
- VOID Return


LCD_PrintNumber

LCD_PrintNumber
Based on v5 macro, will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
- INT Number
Enter the number or variable to print to the LCD 
- VOID Return


LCD_PrintString

LCD_PrintString
Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
- STRING Text
Enter the text or variable to print to the LCD 
- VOID Return


LCD_RAMWrite

LCD_RAMWrite
Modifies the internal memory of the LCD to allow for up to 8 customised characters to be created and stored in the device memory 
- BYTE Index
Values 0 to 7 
- BYTE d0
 
- BYTE d1
 
- BYTE d2
 
- BYTE d3
 
- BYTE d4
 
- BYTE d5
 
- BYTE d6
 
- BYTE d7
 
- VOID Return


LCD_RawSend

LCD_RawSend
Sends data to the LCD display 
- BYTE data
The data byte to send to the LCD 
- BOOL type
A boolean to indicate command type: true to write data, false to write a command 
- VOID Return


LCD_RemapCharacter

LCD_RemapCharacter
Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters. The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map. 
- BYTE RemapIdx
Remap Index, Range: 0 to (Remap Characters - 1) 
- BYTE SearchCharacter
Character to look for a replace 
- BYTE ReplacementCharacter
New character value to use in place of the search character. 
- VOID Return


LCD_ScrollDisplay

LCD_ScrollDisplay
Scrolls the display left or right by a number of given positions. 
- BYTE Position
Holds the number of positions to shift the display 
- BYTE Direction
0 = left, 1 = right 
- VOID Return


LCD_Start

LCD_Start
Startup routine required by the hardware device. Automatically clears the display after initialising. 
- VOID Return


Seg_ShowDigit

Seg_ShowDigit
Displays a digit on the 7-seg display  
- BYTE Digit
Which of the digits to change (0 - 3) 
- BYTE Value
The value to display (0 - 9) 
- BYTE DecimalPoint
Decides if the decimal point is lit 
- VOID Return


Seg_ShowSegments

Seg_ShowSegments
Allows the individual segments of the display to be controlled.  
- BYTE Digit
Which of the digits to change (0 - 3) 
- BYTE Segments
8-bit Binary value to set the segments, bit0 = segA, bit1 = segB... 
- VOID Return


Property reference

Properties
Connection Type
 
Bank 0 Connections
Bank 0
 
Bank 1 Connections
Bank 1
 
Analog Connections
Light Sensor
Light Sensor ADC channel Connected to Bank 0 pin 0 which is usually analog pin AN0. 
Potentiometer
Potentiometer ADC channel Connected to Bank 0 pin 1 which is usually analog pin AN1. 
Simulation
Analog Scope Traces
Controls if traces are automatically added to the data recorder window for the analogue signals on the combo board. 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_EBlocks2_COMBO_BL0114.fcfx