void service_task ( uint_32 initial_data ) { _task_id second_task_id; _int_install_unexpected_isr(); /* create lwevent group */ if (_usr_lwevent_create(&lwevent,0) != MQX_OK) { printf("\nMake event failed"); _task_block(); } /* Create the ISR task */ second_task_id = _usr_task_create(0, ISR_TASK, 0); if (second_task_id == MQX_NULL_TASK_ID) { printf("Could not create simulated_ISR_task \n"); _task_block(); } while (TRUE) { if (_lwevent_wait_ticks(&lwevent,1,TRUE,0) != MQX_OK) { printf("\nEvent Wait failed"); _task_block(); } if (_lwevent_clear(&lwevent,0x01) != MQX_OK) { printf("\nEvent Clear failed"); _task_block(); } printf(" Tick \n"); } }
/*! * \brief Used by a task to create an instance of a lightweight event. * * \param[in] event_ptr Pointer to the lightweight event to initialize. * \param[in] flags Creation flag; one of the following: * \n - LWEVENT_AUTO_CLEAR - all bits in the lightweight event are made autoclearing. * \n - 0 - lightweight event bits are not set as autoclearing by default. * \n Note: The autoclearing bits can be changed any time later by calling * _lwevent_set_auto_clear. * * \return MQX_OK * \return MQX_EINVAL (lwevent is already initialized.) * \return MQX_LWEVENT_INVALID (In case of user mode, MQX tries to access * a lwevent with inappropriate access rights.) * * \see _lwevent_destroy * \see _lwevent_set * \see _lwevent_set_auto_clear * \see _lwevent_clear * \see _lwevent_test * \see _lwevent_wait_for * \see _lwevent_wait_ticks * \see _lwevent_wait_until * \see _lwevent_get_signalled * \see LWEVENT_STRUCT */ _mqx_uint _lwevent_create ( LWEVENT_STRUCT_PTR event_ptr, _mqx_uint flags ) { #if MQX_ENABLE_USER_MODE && MQX_ENABLE_USER_STDAPI if (MQX_RUN_IN_USER_MODE) { return _usr_lwevent_create(event_ptr, flags); } #endif return _lwevent_create_internal(event_ptr, flags, FALSE); }