circ.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:1k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.11.00.00 11-04-03 (ddk-b13)" */
  9. /*
  10.  *  ======== circ.c ========
  11.  */
  12. #include <std.h>
  13. #include <atm.h>
  14. #include <circ.h>
  15. /*
  16.  *  ======== CIRC_new ========
  17.  *
  18.  *  Initializes the circular buffer structure
  19.  */
  20. Void CIRC_new(CIRC_Handle circ)
  21. {
  22.     circ->writeIndex = 0;
  23.     circ->readIndex = 0;
  24.     circ->charCount = 0;
  25.     circ->size = CIRC_BUFSIZE;
  26. }
  27. /*
  28.  *  ======== CIRC_readChar ========
  29.  *
  30.  *  Reads a character from the circular buffer.
  31.  */
  32. Char CIRC_readChar(CIRC_Handle circ)
  33. {
  34.     Char c;
  35.     /* read character and increment the character count */
  36.     c = circ->buf[circ->readIndex];
  37.     circ->readIndex = CIRC_nextIndex(circ,circ->readIndex);
  38.     ATM_decu(&circ->charCount);
  39.     return (c);
  40. }
  41. /*
  42.  *  ======== CIRC_writeChar ========
  43.  *
  44.  *  Writes a character into the circular buffer 
  45.  */
  46. Void CIRC_writeChar(CIRC_Handle circ, Char c)
  47. {
  48.     /* write character and decrement the character count */
  49.     circ->buf[circ->writeIndex] = c;
  50.     circ->writeIndex = CIRC_nextIndex(circ,circ->writeIndex);
  51.     ATM_incu(&circ->charCount);
  52. }