Your Click boards™ application¶
In this section you will learn:
- Creating a mikroSDK application project
- Downloading and installing package for a specific Click board™
- Usage of mikroBUS API
- Making an application with mikroSDK and Click driver work on selected hardware
After you successfully installed mikroSDK package following these steps, you can start developing a portable mikroSDK application.
Creating mikroSDK application project¶
To see how to create a new mikroSDK application project, refer to the Your first application section.
Downloading and installing package for a specific Click board™¶
Prior to using the functions provided by a Click board driver, you have to install its package. This is done through the built-in Library Manager in NECTO Studio. Please refer to this link to see how to use the Library Manager.
Creating a Click board application with mikroSDK¶
In this guide we will use Relay Click to help us showcase the usage.
In order to use the functions provided by the Relay Click driver, you have to select its library and include its header file.
Right click on your project in the Project Manager and select Manage Project Libraries. Expand the Click section and tick the checkbox next to Relay.
Next step is to include the driver header:
#include "relay.h"
Create a relay driver instance by writing:
static relay_t relay;
In the application_init()
we will perform the initialization of the Relay
Click board:
void application_init ()
{
relay_cfg_t cfg;
relay_cfg_setup(&cfg);
RELAY_MAP_MIKROBUS(cfg, MIKROBUS_1);
relay_init(&relay, &cfg);
relay_default_cfg(&relay);
}
Info
Take a look at the official example in order to see how to properly initialize a
Click board. From the NECTO Studio's Welcome page, click on the Examples button,
search for your Click board and click on it to open the example project. Expand
the project tree and double click the main.c
file in which the initialization
code is located.
Main application logic is placed inside the application_task()
function.
Relay Click board has two relays on it, by writing the following code we will
toggle both relays each second:
void application_task ()
{
relay_set_state( &relay, RELAY_NUM_1, RELAY_STATE_ON );
relay_set_state( &relay, RELAY_NUM_2, RELAY_STATE_ON );
Delay_1sec();
relay_set_state( &relay, RELAY_NUM_1, RELAY_STATE_OFF );
relay_set_state( &relay, RELAY_NUM_2, RELAY_STATE_OFF );
Delay_1sec();
}
Usage of mikroBUS API¶
As seen in the above example, RELAY_MAP_MIKROBUS() function uses macros from the
mikrobus.h
header file (located in board.h
) to map the Click board's pins to
mikroBUS pins. Users too can use these macros in their code to map the pins
themselves (see this), however there is a faster way:
You can also use macro pin name MIKROBUS_1_CS
to identify the CS pin on
mikroBUS1 slot, MIKROBUS_2_AN
to identify the AN pin on mikroBUS2 slot,
etc... without needing to know the exact pin name on the target MCU.
These macros are defined in the board.h
header file. This header comes with
mikroSDK package and it defines your development board. It helps by mapping
board pins to the target MCU.