2013年7月23日火曜日

PIC C18 メモ( FIFO, Queue )

-----------------------------
キュー( Queue )
-----------------------------
[ ],[ ],[Head],[ ],[ ],[ ],[ ],[ ],[Tail],[ ],[ ],
  • デキュー( Dequeue ): Head から取り出す(Headは右へ移動)
  • エンキュー( Enqueue ): Tail へ挿入する(Tail は右へ移動)
【初期化】
  • Head = Tail = 0 とクリアした後、メモリを確保
  • Head = Tail は空
  • Head - Tail = 1 は満杯
【エンキュー,データ書き込み】
if((Tail+1) % point == Head ){
  return FULL;
}
Data[ Tail ] = Value;
Tail = ( Tail + 1 ) % point;
return SUCCES;

【デキュー,データ読み出し】
if( Tail == Head ){
  return EMPTY;

}
*ReturnValue = Data[ Head ];
Head=( Tail + 1 ) % point;

2011.01.04