uC / OS-IIIソフトウェアタイマー(III)

ソフトウェアタイマは、ソフトウェアを作成するには、理論的には、あなたが無制限の数、簡単な操作を作成することができ、タイマクロックとシステム管理のソフトウェアタイマ刻みに基づいており、カーネルオブジェクトのuC / OSオペレーティング・システムであるが、タイミング精度は確かにハードウェアよりも少しありますジョンソンエッジ。

原理と実装プロセス

機能を使用するには:

OSTmrCreate()//タイマーを作成

OSTmrDel()//タイマーを削除

タイマーを開始// OSTmrStart()

OSTmrStop()//停止タイマー

 

「OS_CFG.h内」にあるタイマーを有効にするには、ソフトウェアを有効にするためにタイマーを使用する前に。

 

 

 「os_cpu_app.h」周りに配置その設定パラメータ。

 

 

OSTmrCreate()

ソフトウェアタイマーを宣言して作成する必要がありますのuC / OSのソフトウェアタイマを使用するには、ソフトウェアタイマを作成するOSTmrCreate()関数を呼び出します。以下の表の情報にOSTmrCreate()関数。

 

 

 

 

 

OSTmrDel()

OSTmrDel()関数は、ソフトウェアタイマを削除するために使用されます。以下の表の情報にOSTmrDel()関数。

 

 

 

 

 

OSTmrStart()

あなたがソフトウェアを使用する場合は、ソフトウェアタイマー、タイマーを作成した後、ソフトウェアタイマを開始するOSTmrStart()関数を呼び出す必要があります。以下の表の情報にOSTmrStart()関数。

 

OSTmrStop()

OSTmrStop()関数は、ソフトウェアタイマを停止するために使用されます。ソフトウェアタイマーが再起動するOSTmrStart()関数の後に呼び出して停止しますが、再起動タイマーは最初から数えた後、むしろ最後のストップよりも、その後、一瞬のタイミングを続行することができます。次のテーブル情報でOSTmrStop()関数。

 

要約:

1.ソフトウェアのタイマーを使用するには、まずOS_TMRオブジェクトを宣言し、()OSTmrCreateによるソフトウェアタイマーを作成するために機能しなければなりません。ソフトウェアタイマーサブOS_OPT_TMR_ONE_SHOTとOS_OPT_TMR_PERIODIC 2種類。前者はバーストモードと同じです作業を停止するためのソフトウェアタイマーが完了するまでの時間の後に、あなたは再び、再び作業を開始する必要があり、ハードウェアタイマ、一回の実施時期に相当します。後者は、ヘビーデューティ・サイクル値を、サイクルが再起動せずに作業を続けることができ、ハードウェアタイマ周期モードに相当します。

2.软件定时器创建完成之后,还无法立即工作,需要调用OSTmrStart()函数来启动它投入工作。OSTmrStop()函数可以停止一个软件定时器,但它只是被停止了定时,而并没有被删除。如果还想继续使用该软件定时器定时,调用OSTmrStart()函数启动它即可,但启动后是重新定时,而不是紧接着停止时的时间继续计时。

3.OSTmrDel()函数用于删除一个软件定时器,删除之后该软件定时器不能再被使用。

软件定时和延时任务的区别:

调用OSTimeDl()或者OSTimeDlyHMSM(),意味着该任务CPU使用权会被没收,然而你开启一个定时器之后,该任务还可以使用CPU。例如:有延时任务A和普通任务B,任务A延时后就被剥夺CPU使用权了,直到任务A的延时时间到来。而在任务B中,开启了一个软件定时器,任务B还会继续执行下去,直到定时器的到来,程序去执行软件定时器调用的函数,执行完之后再回来接着执行任务B。所以总的区别就是,是否还拥有CPU的使用权利。

 

おすすめ

転載: www.cnblogs.com/lailai-laird/p/11628265.html
おすすめ