This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NyLPC_cSemaphore.cpp Source File

NyLPC_cSemaphore.cpp

00001 /*********************************************************************************
00002  * PROJECT: MiMic
00003  * --------------------------------------------------------------------------------
00004  *
00005  * This file is part of MiMic
00006  * Copyright (C)2011 Ryo Iizuka
00007  *
00008  * MiMic is free software: you can redistribute it and/or modify
00009  * it under the terms of the GNU Lesser General Public License as published
00010  * by the Free Software Foundation, either version 3 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public License
00019  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00020  *
00021  * For further information please contact.
00022  *  http://nyatla.jp/
00023  *  <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
00024  *
00025  *********************************************************************************/
00026 #include "../NyLPC_cSemaphore.h"
00027 
00028 #if NyLPC_ARCH==NyLPC_ARCH_MBEDRTOS
00029 #include "mbed.h"
00030 #include "rtos.h"
00031 
00032 void NyLPC_cSemaphore_initialize(NyLPC_TcSemaphore_t* i_inst)
00033 {
00034     i_inst->_handle=new Semaphore(1);
00035 }
00036 
00037 
00038 void NyLPC_cSemaphore_giveFromISR(const NyLPC_TcSemaphore_t* i_inst)
00039 {
00040     //セマフォブロックの解除
00041     ((Semaphore*)(i_inst->_handle))->release();
00042 }
00043 /**
00044  * @param i_timeout
00045  * タイムアウト時間はms指定
00046  */
00047 void NyLPC_cSemaphore_take(const NyLPC_TcSemaphore_t* i_inst,NyLPC_TUInt32 i_timeout)
00048 {
00049     ((Semaphore*)(i_inst->_handle))->wait(i_timeout);
00050 }
00051 #endif