This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Event not created

Other Parts Discussed in Thread: CC2540

Hi

We have a problem with this event showing in the picture below. When we debug and set a breakpoint, we are able to see that the event is trigged but it jumps over the content of the "if" statement. Can this problem be related to the allocation of timer, if so, what is the solution ?

Thanks in advance

We use a CC2540 BLE kit

  • Check if your KFD_DCMOTOR_OFF_EVT define is duplicate with others.

  • What is the definition of KFD_DCMOTOR_OFF_EVT?

  • Thanks for the replies. I have uploaded both the c-file and h-file which includes KFD_DCMOTOR_OFF_EVT

    Here is the definition:

    if(events & KFD_DCMOTOR_OFF_EVT)
      { 
        DCM_off();//Turn of the motor Forward and Reverse pins    
        HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
        HalLedSet( HAL_LED_2, HAL_LED_MODE_OFF );
        osal_pwrmgr_device( PWRMGR_BATTERY );
        return (events ^ KFD_DCMOTOR_OFF_EVT);
      }
      
      if(events & KFD_FLOWERPOD_CHG_STATE_EVT)
      {
        switch(flowerpod_get_pos())
        {
          case oprejst:
            switch(flowerpod_get_trans())
            {
              case oprejst_midt:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_forward();
                flowerpod_set_pos(midt);
                flowerpod_set_trans(idle);            
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 800);
              break;
              case oprejst_nedfalden:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_forward();         
                flowerpod_set_pos(nedfalden);
                flowerpod_set_trans(idle);
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 800);
              break;
            }
          break;
          case midt:
            switch(flowerpod_get_trans())
            {
              case midt_oprejst:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_reverse();         
                flowerpod_set_pos(oprejst);
                flowerpod_set_trans(idle);
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 1000); 
              break;
              case midt_nedfalden:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_forward();           
                flowerpod_set_pos(nedfalden);
                flowerpod_set_trans(idle);
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 1000);
              break;
            }      
          break;      
          case nedfalden:
          switch(flowerpod_get_trans())
            {
              case nedfalden_midt:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_reverse();
                flowerpod_set_pos(midt);
                flowerpod_set_trans(idle);
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 800); 
              break;
              case nedfalden_oprejst:
                HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
                DCM_reverse();
                flowerpod_set_pos(oprejst);
                flowerpod_set_trans(idle);
                osal_start_timerEx( keyfobapp_TaskID, KFD_DCMOTOR_OFF_EVT, 2000);
              break;
            }
          break;
        }
        return (events ^ KFD_FLOWERPOD_CHG_STATE_EVT);
      }
    /**************************************************************************************************
      Filename:       keyfobdemo.h
      Revised:        $Date: 2012-10-11 12:11:30 -0700 (Thu, 11 Oct 2012) $
      Revision:       $Revision: 31784 $
    
      Description:    This file contains Key Fob Demo Application header file.
    
    
      Copyright 2009 - 2011  Texas Instruments Incorporated. All rights reserved.
    
      IMPORTANT: Your use of this Software is limited to those specific rights
      granted under the terms of a software license agreement between the user
      who downloaded the software, his/her employer (which must be your employer)
      and Texas Instruments Incorporated (the "License").  You may not use this
      Software unless you agree to abide by the terms of the License. The License
      limits your use, and you acknowledge, that the Software may not be modified,
      copied or distributed unless embedded on a Texas Instruments microcontroller
      or used solely and exclusively in conjunction with a Texas Instruments radio
      frequency transceiver, which is integrated into your product.  Other than for
      the foregoing purpose, you may not use, reproduce, copy, prepare derivative
      works of, modify, distribute, perform, display or sell this Software and/or
      its documentation for any purpose.
    
      YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
      PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
      INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
      NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
      TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
      NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
      LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
      INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
      OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
      OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
      (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
    
      Should you have any questions regarding your right to use this Software,
      contact Texas Instruments Incorporated at www.TI.com.
    **************************************************************************************************/
    
    #ifndef KEYFOBDEMO_H
    #define KEYFOBDEMO_H
    
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    
    /*********************************************************************
     * INCLUDES
     */
    
    /*********************************************************************
     * CONSTANTS
     */
    
    
    // Key Fob Task Events
    #define KFD_START_DEVICE_EVT                              0x0001
    #define KFD_BATTERY_CHECK_EVT                             0x0002
    #define KFD_ACCEL_READ_EVT                                0x0004
    #define KFD_DCMOTOR_OFF_EVT                               0x0006
    #define KFD_TOGGLE_BUZZER_EVT                             0x0008
    #define KFD_ADV_IN_CONNECTION_EVT                         0x0010
    #define KFD_FLOWERPOD_CHG_STATE_EVT                       0x0017
    #define KFD_POWERON_LED_TIMEOUT_EVT                       0x0020
    
    
    /*********************************************************************
     * MACROS
     */
    
    /*********************************************************************
     * FUNCTIONS
     */
    
    /*
     * Task Initialization for the BLE Application
     */
    extern void KeyFobApp_Init( uint8 task_id );
    
    /*
     * Task Event Processor for the BLE Application
     */
    extern uint16 KeyFobApp_ProcessEvent( uint8 task_id, uint16 events );
    
    /*********************************************************************
    *********************************************************************/
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif /* KEYFOBDEMO_H */
    

  • You can not define KFD_DCMOTOR_OFF_EVT to 0x0006. The event flag is a bit mask of 2 bytes. I can only be 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080, 0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000. So, you need to change KFD_DCMOTOR_OFF_EVT to 0x0008 and the next four defines to 0x0010,0x0020,0x0040,0x0080.