亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sm1.c

?? MC9S08DZ60的一個SPI實例!比較適合初學(xué)者閱讀!
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** ###################################################################
**     THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
**     Filename  : SM1.C
**     Project   : Project
**     Processor : MC9S08DZ60MLF
**     Beantype  : SynchroMaster
**     Version   : Bean 02.270, Driver 01.18, CPU db: 2.87.131
**     Compiler  : CodeWarrior HCS08 C Compiler
**     Date/Time : 2008-12-10, 上午 09:28
**     Abstract  :
**         This bean "SynchroMaster" implements MASTER part of synchronous
**         serial master-slave communication.
**     Settings  :
**         Synchro type                : MASTER
**
**         Serial channel              : SPI
**
**         Protocol
**             Init baud rate          : 0_100MHz
**             Clock edge              : rising
**             Width                   : 8 bits (always)
**             Empty character         : 0
**             Empty char. on input    : RECEIVED
**
**         Registers
**             Input buffer            : SPID      [$0055]
**             Output buffer           : SPID      [$0055]
**             Control register        : SPIC1     [$0050]
**             Mode register           : SPIC2     [$0051]
**             Baud setting reg.       : SPIBR     [$0052]
**
**             Priority                : 
**
**             Priority                : 
**
**         Used pins                   :
**         ----------------------------------------------------------
**              Function    | On package |    Name
**         ----------------------------------------------------------
**               Input      |     16     |  PTE5_SDA_MISO
**               Output     |     15     |  PTE4_SCL_MOSI
**               Clock      |     14     |  PTE3_SPSCK
**         ----------------------------------------------------------
**
**     Contents  :
**         Enable          - byte SM1_Enable(void);
**         Disable         - byte SM1_Disable(void);
**         RecvChar        - byte SM1_RecvChar(SM1_TComData *Chr);
**         SendChar        - byte SM1_SendChar(SM1_TComData Chr);
**         CharsInRxBuf    - byte SM1_CharsInRxBuf(word *Chr);
**         GetCharsInRxBuf - word SM1_GetCharsInRxBuf(void);
**         CharsInTxBuf    - byte SM1_CharsInTxBuf(word *Chr);
**         GetCharsInTxBuf - word SM1_GetCharsInTxBuf(void);
**         GetError        - byte SM1_GetError(SM1_TError *Err);
**
**     (c) Copyright UNIS, spol. s r.o. 1997-2006
**     UNIS, spol. s r.o.
**     Jundrovska 33
**     624 00 Brno
**     Czech Republic
**     http      : www.processorexpert.com
**     mail      : info@processorexpert.com
** ###################################################################*/


/* MODULE SM1. */

#include "SM1.h"
#include "Events.h"


/* Internal method prototypes */

#define OVERRUN_ERR      0x01          /* Overrun error flag bit   */
#define CHAR_IN_RX       0x08          /* Char is in RX buffer     */
#define FULL_TX          0x10          /* Full transmit buffer     */
#define RUNINT_FROM_TX   0x20          /* Interrupt is in progress */
#define FULL_RX          0x40          /* Full receive buffer      */

static bool EnUser;                    /* Enable/Disable SPI */
static byte SerFlag;                   /* Flags for serial communication */
                                       /* Bits: 0 - OverRun error */
                                       /*       1 - Unused */
                                       /*       2 - Unused */
                                       /*       3 - Char in RX buffer */
                                       /*       4 - Full TX buffer */
                                       /*       5 - Running int from TX */
                                       /*       6 - Full RX buffer */
                                       /*       7 - Unused */
static byte ErrFlag;                   /* Error flags mirror of SerFlag */
static SM1_TComData BufferRead;        /* Input char SPI commmunication */
static SM1_TComData BufferWrite;       /* Output char SPI commmunication */

/*
** ===================================================================
**     Method      :  HWEnDi (bean SynchroMaster)
**
**     Description :
**         Enables or disables the peripheral(s) associated with the bean.
**         The method is called automatically as a part of the Enable and 
**         Disable methods and several internal methods.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
static void HWEnDi(void)
{
  if (EnUser) {                        /* Enable device? */
    SPIC1_SPE = 1;                     /* Enable device */
    SPIC1_SPIE = 1;                    /* Enable interrupts */
    if (SerFlag & FULL_TX) {           /* Is any char in transmit buffer? */
      SPID = BufferWrite;              /* Store char to transmitter register */
    }
  }
  else {
    SPIC1_SPE = 0;                     /* Disable device */
    SPIC1_SPIE = 0;                    /* Disable interrupts */
  }
}

/*
** ===================================================================
**     Method      :  SM1_Enable (bean SynchroMaster)
**
**     Description :
**         Enable the bean - it starts send and receive functions.
**         Events may be generated ("DisableEvent"/"EnableEvent").
**     Parameters  : None
**     Returns     :
**         ---             - Error code, possible codes:
**                           ERR_OK - OK
**                           ERR_SPEED - This device does not work in
**                           the active speed mode
** ===================================================================
*/
byte SM1_Enable(void)
{
  if (!EnUser) {                       /* Is the device disabled by user? */
    EnUser = TRUE;                     /* If yes then set the flag "device enabled" */
    HWEnDi();                          /* Enable the device */
  }
  return ERR_OK;                       /* OK */
}

/*
** ===================================================================
**     Method      :  SM1_Disable (bean SynchroMaster)
**
**     Description :
**         Disable the bean - it stops the send and receive
**         functions. No events will be generated.
**     Parameters  : None
**     Returns     :
**         ---             - Error code, possible codes:
**                           ERR_OK - OK
**                           ERR_SPEED - This device does not work in
**                           the active speed mode
** ===================================================================
*/
byte SM1_Disable(void)
{
  if (EnUser) {                        /* Is the device enabled by user? */
    EnUser = FALSE;                    /* If yes then set the flag "device disabled" */
    HWEnDi();                          /* Disable the device */
  }
  return ERR_OK;                       /* OK */
}

/*
** ===================================================================
**     Method      :  SM1_RecvChar (bean SynchroMaster)
**
**     Description :
**         If any data is received, this method returns one
**         character, otherwise it returns an error code (it does
**         not wait for data).
**     Parameters  :
**         NAME            - DESCRIPTION
**       * Chr             - A pointer to the received character
**     Returns     :
**         ---             - Error code, possible codes:
**                           ERR_OK - OK
**                           ERR_SPEED - This device does not work in
**                           the active speed mode
**                           ERR_RXEMPTY - No data in receiver
**                           ERR_OVERRUN - Overrun error was detected
**                           from the last char or block received. In
**                           polling mode, this error code is
**                           returned only when the hardware supports
**                           detection of the overrun error. 
**                           ERR_FAULT - Fault error was detected
**                           from the last char or block received.
**                           This error may not be supported on some
**                           CPUs (see generated code).
** ===================================================================
*/
byte SM1_RecvChar(SM1_TComData *Chr)
{
  byte FlagTmp;

  if (!(SerFlag & CHAR_IN_RX)) {       /* Is any char in RX buffer? */
    return ERR_RXEMPTY;                /* If no then error */
  }
  EnterCritical();                     /* Save the PS register */
  *Chr = BufferRead;                   /* Read the char */
  FlagTmp = SerFlag;                   /* Safe the flags */
  SerFlag &= ~(OVERRUN_ERR | CHAR_IN_RX | FULL_RX); /* Clear flag "char in RX buffer" */
  ExitCritical();                      /* Restore the PS register */
  if ((FlagTmp & OVERRUN_ERR) != 0) {  /* Has the overrun occured? */
    return ERR_OVERRUN;                /* If yes then return error */
  } else {
    return ERR_OK;
  }
}

/*
** ===================================================================
**     Method      :  SM1_SendChar (bean SynchroMaster)
**
**     Description :
**         Sends one character to the channel.
**     Parameters  :
**         NAME            - DESCRIPTION
**         Chr             - Character to send
**     Returns     :

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品免费| 波多野结衣亚洲| 国产精品美女久久久久aⅴ国产馆| 欧美日韩久久久一区| 99久久er热在这里只有精品15 | 精品国产99国产精品| 欧美亚洲免费在线一区| 99久久婷婷国产综合精品电影| 91免费国产在线| caoporm超碰国产精品| 91精品办公室少妇高潮对白| 91麻豆产精品久久久久久 | 日韩激情一区二区| 日日夜夜精品视频天天综合网| 国产在线精品不卡| 国产精品一区专区| 成人免费观看男女羞羞视频| 成人黄色免费短视频| 成人app在线| 7878成人国产在线观看| 91精品国产综合久久婷婷香蕉| 久久久久九九视频| 国产偷国产偷亚洲高清人白洁| 国产午夜一区二区三区| 一区二区三区高清在线| 亚洲成av人片| 琪琪一区二区三区| 国产在线播精品第三| 色菇凉天天综合网| 国产色综合久久| 天堂精品中文字幕在线| av一区二区三区四区| 日韩精品一区二区三区四区视频| 久久精品亚洲一区二区三区浴池| 亚洲一区在线视频| av一区二区不卡| 欧美高清激情brazzers| 日韩无一区二区| 久久综合色之久久综合| 国产精品毛片a∨一区二区三区| 日韩和欧美的一区| 91麻豆自制传媒国产之光| 久久色在线视频| 日韩va亚洲va欧美va久久| 国产精品一区二区不卡| 欧美一区二区三区系列电影| 国产午夜精品美女毛片视频| 日本欧美一区二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 在线播放国产精品二区一二区四区| 国产精品视频九色porn| 激情综合网最新| 在线亚洲精品福利网址导航| 日韩限制级电影在线观看| 亚洲福利视频一区| 国产成人精品网址| 欧美日韩亚州综合| 久久久一区二区三区捆绑**| 日韩综合小视频| 欧美日韩国产a| 亚洲永久精品国产| 色婷婷久久久久swag精品| 国产精品麻豆一区二区| 国产成人自拍高清视频在线免费播放| 欧美成人精精品一区二区频| 亚洲精品午夜久久久| 激情综合五月婷婷| 精品美女一区二区| 久久激情五月激情| 欧美中文字幕一区二区三区| 亚洲精品自拍动漫在线| 91免费小视频| 亚洲精品免费在线播放| 在线中文字幕不卡| 亚洲一卡二卡三卡四卡五卡| 欧美色偷偷大香| 亚洲成a天堂v人片| 欧美三级视频在线观看| 亚洲一区免费在线观看| 在线免费观看视频一区| 天天影视网天天综合色在线播放| 成人av集中营| 一区二区中文视频| 国产精品69毛片高清亚洲| 国产亚洲制服色| aaa亚洲精品| 亚洲精品日韩专区silk | 日韩精品乱码av一区二区| 欧美久久婷婷综合色| 日本中文一区二区三区| 欧美一级二级三级蜜桃| 国产精品一区专区| 一区在线观看视频| 在线看日本不卡| 午夜国产不卡在线观看视频| 日韩欧美亚洲一区二区| 高清不卡在线观看av| 精品成人一区二区三区四区| 色婷婷综合久久久久中文 | 欧美人妖巨大在线| 蜜乳av一区二区| 欧美日韩一区二区欧美激情| 日韩av午夜在线观看| 久久亚洲精精品中文字幕早川悠里 | 99久久国产免费看| 亚洲va欧美va人人爽| 欧美成人r级一区二区三区| 成人在线一区二区三区| 亚洲午夜国产一区99re久久| 日韩免费视频一区| av亚洲精华国产精华| 亚洲成人激情综合网| 久久综合久久综合亚洲| 色综合天天综合给合国产| 欧美高清在线视频| 成人午夜免费av| 亚洲夂夂婷婷色拍ww47| 欧美成人r级一区二区三区| 成人18视频在线播放| 日韩精品视频网| 国产精品理伦片| 粉嫩一区二区三区性色av| 亚洲一二三区在线观看| 国产亚洲欧美日韩俺去了| 在线观看亚洲精品视频| 国产一区二区不卡| 一区二区三区精品在线| 久久精品欧美一区二区三区麻豆| 91福利国产精品| 国产麻豆日韩欧美久久| 亚洲综合激情另类小说区| 久久久欧美精品sm网站 | 麻豆视频观看网址久久| 自拍偷拍欧美激情| 欧美在线视频全部完| 国产一区激情在线| 亚洲一级片在线观看| 久久精品亚洲精品国产欧美 | 五月婷婷久久综合| 国产精品女上位| 日韩你懂的电影在线观看| 91官网在线免费观看| 国产精品一区二区无线| 天天综合色天天综合色h| 亚洲同性同志一二三专区| 久久网这里都是精品| 欧美丰满少妇xxxbbb| 91在线porny国产在线看| 国产一区二区三区日韩| 亚洲成人免费电影| 中文字幕一区二区三区乱码在线 | 国产成人日日夜夜| 免费看日韩a级影片| 亚洲影视资源网| 国产精品理论在线观看| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩日日骚| 一本一道久久a久久精品| 国产成人福利片| 精品中文av资源站在线观看| 日本视频一区二区| 国产激情一区二区三区四区 | 91免费版pro下载短视频| 国产精品亚洲专一区二区三区| 日韩av中文字幕一区二区三区| 一区二区三区精品视频在线| 亚洲人成网站精品片在线观看| 精品视频1区2区3区| 91丝袜美腿高跟国产极品老师 | 国产精品久久久久久久浪潮网站| 日韩精品一区在线观看| 欧美一级视频精品观看| 欧美群妇大交群中文字幕| 色婷婷国产精品| 色综合天天性综合| 99re这里只有精品6| 99re成人精品视频| 91蝌蚪porny| 91麻豆6部合集magnet| 91免费版pro下载短视频| 91影视在线播放| 91农村精品一区二区在线| 91在线视频观看| 91视频国产观看| 91麻豆精品在线观看| 91麻豆精东视频| 日本黄色一区二区| 欧美日韩免费观看一区三区| 欧美乱妇一区二区三区不卡视频| 在线观看国产精品网站| 欧美色综合天天久久综合精品| 欧美色网站导航| 欧美精品v国产精品v日韩精品| 7777精品伊人久久久大香线蕉经典版下载 | 天堂va蜜桃一区二区三区| 午夜电影网亚洲视频| 蜜桃av一区二区| 国产一区中文字幕| 国产成人在线网站| 成人网页在线观看|