CMSIS Example - osMutex osMutexWait osMutexRelease


osMutexDef( Mutex );
osMutexId mutex;

void Thread0( void * arg);
void Thread1( void * arg);

osThreadDef( Thread0, Thread0, osPriorityNormal, 512 );
osThreadDef( Thread1, Thread1, osPriorityAboveNormal, 512 );


void Thread0( void * arg)
{
  while(1)
  {
    osMutexWait( mutex, osWaitForever );
    osDelay( 10 );
    osMutexRelease( mutex );
    osDelay( 10 );
  }
}

void Thread1( void * arg)
{
  while(1)
  {
    osMutexWait( mutex, osWaitForever );
    osDelay( 10 );
    osMutexRelease( mutex );
    osDelay( 10 );
  }
}

int main( void )
{
  osKernelInitialize();

  osThreadCreate( osThread(Thread0), (void *)100 );
  osThreadCreate( osThread(Thread1), (void *)200 );

  mutex = osMutexCreate( osMutex(Mutex) );

  osKernelStart();

  return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM