|
|
(47 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | Macros are sections of code that are repeated a number of times within a program.<br />
| + | For an excellent introduction guide, we recommend [https://www.flowcode.co.uk/education/ Introduction to microcontroller programming] |
− | It is more efficient to use a macro than to create the code repeatedly every time it is needed.<br />
| |
− | For more information about macros, see [[What Is a Macro?]]. | |
− | | |
− | This exercise shows how to use macros with a menu to create a simple LED flasher. The LED can be made to flash at different frequencies by pressing different switches.
| |
− | | |
− | The first section looks at creating the core program, with the menu. The second section shows how to create the macro.
| |
− | | |
− | | |
− | __TOC__
| |
− | | |
− | ==The main sequence==
| |
− | This part of the program uses three switches to select the frequency for the LED.<br />
| |
− | The flowchart sequence will be:
| |
− | ::::* Read the state of the switches.
| |
− | ::::* Use this state to determine the correct branch to take.
| |
− | ::::* Set up the appropriate time delay for the chosen frequency.
| |
− | ::::* Run the macro with that delay setting.
| |
− | ::::* Loop back and check the switches again.
| |
− | | |
− | ==Linking frequency and delay==
| |
− | The flowchart controlling the LED flashes is shown opposite.<br />
| |
− | The table that follows shows the link between length of delay in each 'Delay' icon, and the frequency of flashing.
| |
− | | |
− | | |
− | {| class="wikitable" style="text-align:center;"
| |
− | | |
− | ! colspan="2" | LED frequency and delay
| |
− | |-
| |
− | | Delay in milliseconds || Frequency
| |
− | |-
| |
− | | 1000 ||0.5
| |
− | |-
| |
− | | 500 ||1
| |
− | | |
− | |-
| |
− | | 250 ||2
| |
− | | |
− | |-
| |
− | | 125 ||4
| |
− | |}
| |
− | | |
− | [[File:gen_exerciseUsingAnInp_anvarman_01.png|300px|right]]
| |
− | ==Create the variables==
| |
− | The program will use two variables, 'selection', to store the state of the switches used to select frequency, and 'delay', used to determine the frequency at which the LED flashes.
| |
− | :* In the 'Edit' menu, on the main toolbar, click on 'Variables...' to open the [[Variable Manager]] dialogue box.
| |
− | ::* Hover just to the left of the 'Variables' label, and click on the down arrow that appears.
| |
− | ::* Select 'Add new' and the 'Create a New Variable' dialogue box opens.
| |
− | ::* Name the new variable "input".
| |
− | ::* Leave the variable type as 'Byte'.
| |
− | ::* Click on 'OK'.
| |
− | ::* The dialogue box is shown opposite.
| |
− | ===Set up the 'main' flowchart===
| |
− | * Open Flowcode, and set up the new flowchart as described in [[Exercise - Creating Your First Flowchart|Creating Your First Flowchart]].
| |
− | | |
− | ==Create the flowchart==
| |
− | * Click and drag an infinite loop, [[File:Btn Loop.gif|30px]] between the 'BEGIN' and 'END' icons.
| |
− | | |
− | ===Create the core sequence===
| |
− | ===Add the LCD===
| |
− | * Locate the 'LCD' inside the 'Outputs' toolbox in the [[Tools and Views#1) Icons Toolbar|Icons toolbar]].
| |
− | :* Hover over the image to the left of the 'LCD' label, and click on the down-arrow that appears.
| |
− | | |
− | | |
− | | |
− | | |
− | ===Add the switch===
| |
− | * Locate the 'Push Round Panel' switch in the 'Inputs' toolbox in the [[Tools and Views#1) Icons Toolbar|Icons toolbar]].
| |
− | :* Hover over the image to the left of the switch label, and click on the down-arrow that appears.
| |
− | :* Click on the 'Add to system panel' option to select it.
| |
− | :* Click on the image of the switch on the System panel to select it and drag it to a suitable position.
| |
− | :* On the Panel Properties, click on the 'Unconnected' label, next to 'Connection'.
| |
− | :: A pinout of the microcontroller appears.
| |
− | :* Click on the rectangle that represents the pin RA1/AN1, to connect the switch to Port A, bit 1 of the microcontroller.
| |
− | | |
− | ===Add the LED===
| |
− | * Locate the 'Single LED' in the 'Outputs' toolbox in the [[Tools and Views#1) Icons Toolbar|Icons toolbar]].
| |
− | :* Hover over the image to the left of the 'Single LED' label, and click on the down-arrow that appears.
| |
− | :* Click on the 'Add to system panel' option to select it.
| |
− | :* Select the LED on the System panel and drag it to a suitable position.
| |
− | :* Look at the Panel Properties, the 'Connection' property shows that, by default, it is connected to Port A, bit 0.
| |
− | :: Leave it like this.
| |