本文整理汇总了C++中chMtxInit函数的典型用法代码示例。如果您正苦于以下问题:C++ chMtxInit函数的具体用法?C++ chMtxInit怎么用?C++ chMtxInit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了chMtxInit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: gdispInit
bool_t gdispInit(void) {
bool_t res;
unsigned i;
/* Mark all the Messages as free */
for(i=0; i < GDISP_QUEUE_SIZE; i++)
gdispMsgs[i].action = GDISP_LLD_MSG_NOP;
/* Initialise our Mailbox, Mutex's and Counting Semaphore.
* A Mutex is required as well as the Mailbox and Thread because some calls have to be synchronous.
* Synchronous calls get handled by the calling thread, asynchronous by our worker thread.
*/
chMBInit(&gdispMailbox, gdispMailboxQueue, sizeof(gdispMailboxQueue)/sizeof(gdispMailboxQueue[0]));
chMtxInit(&gdispMutex);
chMtxInit(&gdispMsgsMutex);
chSemInit(&gdispMsgsSem, GDISP_QUEUE_SIZE);
lldThread = chThdCreateStatic(waGDISPThread, sizeof(waGDISPThread), NORMALPRIO, GDISPThreadHandler, NULL);
/* Initialise driver - synchronous */
chMtxLock(&gdispMutex);
res = gdisp_lld_init();
chMtxUnlock();
return res;
}
开发者ID:niamster,项目名称:ChibiOS-GFX,代码行数:26,代码来源:gdisp.c
示例2: mainFunc
extern "C" void mainFunc(){
Serial.begin(38400);
Serial1.begin(38400, SERIAL_8N1);
delay(3000);
Serial.printf("mainFunc\r\n");
chMtxInit(&kalman_st_mut);
chMtxInit(&control_mut);
//chThdCreateStatic(wa_led_thread, sizeof(wa_led_thread), NORMALPRIO+3, led_thread, NULL);
chThdCreateStatic(wa_flash_thread, sizeof(wa_flash_thread), NORMALPRIO+4, flash_thread, NULL);
chThdCreateStatic(wa_meas_thread, sizeof(wa_meas_thread), NORMALPRIO+3, meas_thread, NULL);
chThdCreateStatic(wa_communication_thread, sizeof(wa_communication_thread), NORMALPRIO+2, communication_thread, NULL);
chThdCreateStatic(wa_receive_thread, sizeof(wa_receive_thread), NORMALPRIO+1, receive_thread, NULL);
chThdCreateStatic(wa_orientation_thread, sizeof(wa_orientation_thread), NORMALPRIO, orientation_thread, NULL);
}
开发者ID:adamwalker,项目名称:quadcopter,代码行数:16,代码来源:main.cpp
示例3: chMtxInit
FrameBuffer< pages, columns >::FrameBuffer(){
limits.x_min = columns - 1;
limits.y_min = pages - 1;
limits.x_max = 0;
limits.y_max = 0;
chMtxInit(&mutex);
}
开发者ID:bnahill,项目名称:wireless_logger,代码行数:7,代码来源:framebuffer.cpp
示例4: i2cObjectInit
/**
* @brief Initializes the standard part of a @p I2CDriver structure.
*
* @param[out] i2cp pointer to the @p I2CDriver object
*
* @init
*/
void i2cObjectInit(I2CDriver *i2cp) {
i2cp->id_state = I2C_STOP;
i2cp->id_config = NULL;
i2cp->rxbuff_p = NULL;
i2cp->txbuff_p = NULL;
i2cp->rxbuf = NULL;
i2cp->txbuf = NULL;
i2cp->id_slave_config = NULL;
#if I2C_USE_WAIT
i2cp->id_thread = NULL;
#endif /* I2C_USE_WAIT */
#if I2C_USE_MUTUAL_EXCLUSION
#if CH_USE_MUTEXES
chMtxInit(&i2cp->id_mutex);
#else
chSemInit(&i2cp->id_semaphore, 1);
#endif /* CH_USE_MUTEXES */
#endif /* I2C_USE_MUTUAL_EXCLUSION */
#if defined(I2C_DRIVER_EXT_INIT_HOOK)
I2C_DRIVER_EXT_INIT_HOOK(i2cp);
#endif
}
开发者ID:mcu786,项目名称:Quad-Rotor,代码行数:33,代码来源:i2c.c
示例5: motor_init
int motor_init(void)
{
_watchdog_id = watchdog_create(WATCHDOG_TIMEOUT_MSEC);
if (_watchdog_id < 0) {
return _watchdog_id;
}
int ret = motor_rtctl_init();
if (ret) {
return ret;
}
chMtxInit(&_mutex);
chEvtInit(&_setpoint_update_event);
configure();
init_filters();
if (_state.input_voltage < MIN_VALID_INPUT_VOLTAGE || _state.input_voltage > MAX_VALID_INPUT_VOLTAGE) {
lowsyslog("Motor: Invalid input voltage: %f\n", _state.input_voltage);
return -1;
}
ret = rpmctl_init();
if (ret) {
return ret;
}
motor_rtctl_stop();
assert_always(chThdCreateStatic(_wa_control_thread, sizeof(_wa_control_thread),
HIGHPRIO, control_thread, NULL));
return 0;
}
开发者ID:JarryChou,项目名称:sapog,代码行数:34,代码来源:motor.c
示例6: oledInit
void oledInit (oledConfig *oledConfig, struct SerialDriver *oled, const uint32_t baud,
GPIO_TypeDef *rstGpio, uint32_t rstPin, enum OledConfig_Device dev)
{
oledConfig->rstGpio = rstGpio;
oledConfig->rstPin = rstPin;
oledConfig->deviceType = dev;
oledHardReset (oledConfig);
oledPreInit (oledConfig, 9600);
oledConfig->serial = (BaseSequentialStream *) oled;
chMtxInit(&(oledConfig->omutex));
sdStart(oled, &(oledConfig->serialConfig));
chThdSleepMilliseconds(10);
// opaque background
if (oledConfig->deviceType != TERM_VT100) {
OLED_KOF (KOF_INT16, "%c%c%c%c", 0xff, 0xdf, 0x00, 0x01);
}
oledClearScreen (oledConfig);
// use greater speed
if (baud != 9600)
oledSetBaud (oledConfig, baud);
}
开发者ID:alex31,项目名称:bras_robot_e407_lcd4ds,代码行数:27,代码来源:picaso4Display.c
示例7: MessageQueue
MessageQueue(
uint8_t* const data,
size_t k
) : fifo { data, k }
{
chMtxInit(&mutex_write);
}
开发者ID:sharebrained,项目名称:portapack-hackrf,代码行数:7,代码来源:message_queue.hpp
示例8: errorLedInit
void errorLedInit(void)
{
#if PROTECT_DATA_WITH_MUTEX
chMtxInit(&mutex);
#endif
chThdCreateStatic(waErrorLedThd, sizeof(waErrorLedThd), NORMALPRIO-1, errorLedThd, 0);
}
开发者ID:alex31,项目名称:bras_robot_e407_lcd4ds,代码行数:7,代码来源:errorLed.c
示例9: initI2c
void initI2c( void )
{
// Address pins
palSetPadMode( ADDR_PORT, ADDR_0_PIN, PAL_MODE_INPUT );
palSetPadMode( ADDR_PORT, ADDR_1_PIN, PAL_MODE_INPUT );
palSetPadMode( ADDR_PORT, ADDR_2_PIN, PAL_MODE_INPUT );
palSetPadMode( GPIOB, 6, PAL_MODE_STM32_ALTERNATE_OPENDRAIN );
palSetPadMode( GPIOB, 7, PAL_MODE_STM32_ALTERNATE_OPENDRAIN );
chThdSleepMilliseconds( 100 );
i2cInit();
//chThdSleepMilliseconds( 100 );
i2cStart( &I2CD1, &i2cfg1 );
//chThdSleepMilliseconds( 200 );
// Initial values for IOs.
int16_t i;
for ( i=0; i<I2C_SLAVES_CNT; i++ )
{
outs[i] = 0;
pendOuts[i] = 0;
ins[i] = 0;
}
// Initializing mutex.
chMtxInit( &mutex );
// Creating thread.
chThdCreateStatic( waI2c, sizeof(waI2c), NORMALPRIO, i2cThread, NULL );
}
开发者ID:z80,项目名称:IPM,代码行数:29,代码来源:i2c_ctrl.c
示例10: initPower
void initPower( void )
{
chMtxInit( &g_mutex );
setPower( 0 );
chThdCreateStatic( waPower, sizeof(waPower), NORMALPRIO, Power, NULL );
}
开发者ID:z80,项目名称:robocam,代码行数:7,代码来源:power_ctrl.c
示例11: clarityMgmtInit
static clarityError clarityMgmtInit(clarityAccessPointInformation * apInfo,
clarityUnresponsiveCallback cb)
{
memset(&mgmtData, 0, sizeof(mgmtData));
chMtxInit(&mgmtData.mutex);
clarityMgmtMtxLock();
mgmtData.ap = apInfo;
clarityMgmtMtxUnlock();
#if 0
connectivityMonThd = chThdCreateStatic(connectivityMonThdWorkingArea,
sizeof(connectivityMonThdWorkingArea),
NORMALPRIO + 1,
clarityMgmtConnectivityMonitoringThd,
NULL);
#endif
if (cb != NULL)
{
unresponsiveCb = cb;
responseMonThd = chThdCreateStatic(responseMonThdWorkingArea,
sizeof(responseMonThdWorkingArea),
HIGHPRIO-1,
clarityMgmtResponseMonitoringThd,
NULL);
}
return CLARITY_SUCCESS;
}
开发者ID:alanbarr,项目名称:clarity,代码行数:29,代码来源:mgmt.c
示例12: osCreateMutex
bool_t osCreateMutex(OsMutex *mutex)
{
//Initialize the mutex object
chMtxInit(mutex);
//Mutex successfully created
return TRUE;
}
开发者ID:rkun,项目名称:COMP3334,代码行数:8,代码来源:os_port_chibios.c
示例13: _heap_init
void _heap_init(void) {
#if CH_USE_MUTEXES
chMtxInit(&hmtx);
#else
chSemInit(&hsem, 1);
#endif
}
开发者ID:Aljabri722,项目名称:legoino,代码行数:8,代码来源:chheap.c
示例14: initRead
void initRead( void )
{
palSetPadMode( SEN_PORT, SEN_1, PAL_MODE_INPUT );
palSetPadMode( SEN_PORT, SEN_2, PAL_MODE_INPUT );
// Initializing mutex.
chMtxInit( &mutex );
// Creating thread.
chThdCreateStatic( waRead, sizeof(waRead), NORMALPRIO, readThread, NULL );
}
开发者ID:z80,项目名称:IPM,代码行数:9,代码来源:read_ctrl.c
示例15: comm_init
void comm_init(void) {
myUSBinit();
packet_init(send_packet, process_packet);
chMtxInit(&send_mutex);
// Threads
chThdCreateStatic(serial_read_thread_wa, sizeof(serial_read_thread_wa), NORMALPRIO, serial_read_thread, NULL);
chThdCreateStatic(serial_process_thread_wa, sizeof(serial_process_thread_wa), NORMALPRIO, serial_process_thread, NULL);
chThdCreateStatic(timer_thread_wa, sizeof(timer_thread_wa), NORMALPRIO, timer_thread, NULL);
}
开发者ID:rewolff,项目名称:bldc,代码行数:11,代码来源:comm.c
示例16: PIOS_malloc
/**
*
* @brief Creates a non recursive mutex.
*
* @returns instance of @p struct pios_mutex or NULL on failure
*
*/
struct pios_mutex *PIOS_Mutex_Create(void)
{
struct pios_mutex *mtx = PIOS_malloc(sizeof(struct pios_mutex));
if (mtx == NULL)
return NULL;
chMtxInit(&mtx->mtx);
return mtx;
}
开发者ID:EvalZero,项目名称:TauLabs,代码行数:18,代码来源:pios_mutex.c
示例17: initLed
void initLed( void )
{
palClearPad( LED_0_PORT, LED_0_PIN );
palClearPad( LED_1_PORT, LED_1_PIN );
palSetPadMode( LED_0_PORT, LED_0_PIN, PAL_MODE_OUTPUT_PUSHPULL );
palSetPadMode( LED_1_PORT, LED_1_PIN, PAL_MODE_OUTPUT_PUSHPULL );
// Initializing mutex.
chMtxInit( &mutex );
// Creating thread.
chThdCreateStatic( waLeds, sizeof(waLeds), NORMALPRIO, ledsThread, NULL );
}
开发者ID:z80,项目名称:digitizer,代码行数:12,代码来源:led_ctrl.c
示例18: rawd_init
void rawd_init(void)
{
chMtxInit(&rawd_mutex);
memset(ncs, sizeof(ncs), 0);
rawd_th = chThdCreateStatic(rawd_wa, sizeof(rawd_wa),
LOWPRIO + 2,
rawd_loop, NULL);
rawd_push_th = chThdCreateStatic(rawd_push_wa, sizeof(rawd_push_wa),
LOWPRIO + 2,
rawd_push_loop, NULL);
}
开发者ID:fabiobaltieri,项目名称:nrf-ethernet,代码行数:14,代码来源:rawd.c
示例19: mySPIinit
void mySPIinit(void){
chMtxInit(&accelMtx);
// Initializes the SPI driver 1 in order to access the MEMS. The signals are already initialized in the board file.
spiStart(&SPID1, &spi1cfg);
// LIS302DL initialization.
lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG1, 0x43);
lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG2, 0x00);
lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG3, 0x00);
// Start accelerator reading thread.
chThdCreateStatic(waThread1, sizeof(waThread1),
NORMALPRIO + 10, Thread1, NULL);
}
开发者ID:GokulEvuri,项目名称:STM_Library_Erlang,代码行数:15,代码来源:SPI.c
示例20: oscUsbEnable
bool oscUsbEnable(bool on)
{
if (on && osc.usbThd == 0) {
chMtxInit(&osc.usb.lock);
osc.usb.sendMessage = usbserialWriteSlip;
osc.usbThd = chThdCreateStatic(waUsbThd, sizeof(waUsbThd), NORMALPRIO, OscUsbSerialThread, NULL);
return true;
}
if (!on && osc.usbThd != 0) {
chThdTerminate(osc.usbThd);
osc.usbThd = 0;
return true;
}
return false;
}
开发者ID:YTakami,项目名称:makecontroller,代码行数:15,代码来源:osc.c
注:本文中的chMtxInit函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论