Skip to content

rtificial/DALI_2_click

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MikroE


DALI_2 Click

  • CIC Prefix : DALI2
  • Author : MikroE Team
  • Verison : 1.0.0
  • Date : Feb 2018.

Software Support

We provide a library for the DALI_2 Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Library Description

Library implements DALI master functionalities.

Key functions :

  • void dali2_sendCmd(const uint8_t balAddress, const uint8_t cmd, const uint8_t cmdType, const uint8_t folType) - Executes DALI command
  • void dali2_masterInit() - Initializes master functionality
  • uint8_t dali2_masterStatus() - Returns master status

Examples Description

The application is composed of three sections :

  • System Initialization - Initializes GPIO pins for TX and RX
  • Application Initialization - Initializes driver, initializes DALI master functionality and configures timer
  • Application Task - (code snippet) - Application task is composed of three sequences, first sequence toggling light twice with delay of one second. Second sequence decreases intensity of light by 8 steps with delay of half second. Third sequence increases intensity of light by 8 steps with delay of half second.
void applicationTask()
{
    uint8_t counter;
    
    for (counter = 0; counter < 2; counter++)
    {
        dali2_sendCmd(_DALI2_ADDRESS01, _DALI2_OFF, _DALI2_BROADCAST_CMD, _DALI2_FOLLOWING_COMMAND);
        Delay_ms( 1000 );
        dali2_sendCmd(_DALI2_ADDRESS01, _DALI2_RECALL_MAX_LEVEL, _DALI2_BROADCAST_CMD, _DALI2_FOLLOWING_COMMAND);
        Delay_ms( 1000 );
    }
    
    for (counter = 0; counter < 8; counter++)
    {
        dali2_sendCmd(_DALI2_ADDRESS01, _DALI2_DOWN, _DALI2_BROADCAST_CMD, _DALI2_FOLLOWING_COMMAND);
        Delay_ms( 500 );
    }
    
    for (counter = 0; counter < 8; counter++)
    {
        dali2_sendCmd(_DALI2_ADDRESS01, _DALI2_UP, _DALI2_BROADCAST_CMD, _DALI2_FOLLOWING_COMMAND);
        Delay_ms( 500 );
    }
    
    current_state = dali2_masterStatus();
}

Note

This implementation of DALI master requires timer with exact 104 uS interrupt time. The MCU used for example must be cappable to execute void dali2_isr() function in time less than 104 uS. In theory it is usable on faster MCUs but before usage you should check does your MCU is cappable to acomplish dali2_isr function call for less than 104us.

The full application code, and ready to use projects can be found on our LibStock page.



About

Library for DALI module.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 54.9%
  • C++ 41.8%
  • Assembly 3.2%
  • Makefile 0.1%