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

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

?? cdr14iic.c

?? IIC總線驅(qū)動程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
 *   while(DR04_IIC_IS_BUSY); *   // now all jobs are finished * } * * INTERFACE DECLARATION: ****************************************************/void p_dr14_IICSchedule(u8 u8_Slave, const t_dr04_IICJob *pst_FirstJob){  u32 x;  /* get index to Control Block Queue and guard against overflow */  SYS5_DISABLE_IRQ;# ifndef BMP_TEST  G_u8_os00_SystemActive = 1;# endif    if (st_dr14_IIC.u8_NumOfJobs >= DR14_MAX_JOBS)  {      /* insert behind current job */      st_dr14_IIC.u8_NumOfJobs= 1;      EXCEPTION(0xD2);      /* transmissions (current+1, current+2) will be lost,       * system will restart later */  }  /* now register job list */  x= (st_dr14_IIC.u8_IdxActJob + st_dr14_IIC.u8_NumOfJobs) % DR14_MAX_JOBS;  st_dr14_IIC.u8_NumOfJobs++;  st_dr14_IIC.u8_Dev  [x]=   u8_Slave;  st_dr14_IIC.pst_Jobs[x]=  pst_FirstJob;  /* start IIC if necessary */  if (st_dr14_IIC.u8_Busy == 0)  {      st_dr14_IIC.u8_Busy= 1;      p_dr14_IICEndOfJob();  }  SYS5_ENABLE_IRQ;} /* p_dr14_IICSchedule *//* FUNCTIONAL DESCRIPTION * * This interrupt handler drives the transmission over the IIC bus. * Only the IIC Master Mode (Master Transmitter / Master Receiver) * is supported. * * INTERFACE DECLARATION: ****************************************************/void p_dr14_IICInterrupt(void){  /* DESIGN   *   * The state  of the interrupt source is fetched from the interrupt   * state register S1STA and processed in a switch statement.   */  u32 u32_Rr;  u8 u8_Wr=0;  /* if IIC_28_MT_DAT_ACK:       received ack on write       */  u8 u8_Er=0;  /* if IIC_58_MR_DAT_NAK:       received last byte on read  */# ifdef IIC_GPIO_TRACE  /* GPIO_10 is pin 13 on the digital IO connector of the ABC PP */  sys2_GPIO.PortPin[10].port_pin =1;# endif    u32_Rr= DR14_STATUS_REG;  DR14_IIC_DUMP(DUMP_MARK,0xEE);  DR14_IIC_DUMP(DUMP_STA,u32_Rr);  switch (u32_Rr/*S1STA*/)  {    case DR14_IIC_10_MT_REPSTA_OK:         /* iic-bus started                */    case DR14_IIC_08_MT_STA_OK:      st_dr14_IIC.u8_StopRequested= 0;      u32_Rr=   st_dr14_IIC.u8_Dev[st_dr14_IIC.u8_IdxActJob];      u32_Rr |= st_dr14_IIC.st_ActTrf.un_Ctrl;      DR14_DATA_REG= u32_Rr;      /* SLA+W or SLA+R  */      DR14_IIC_DUMP_CHECK(u32_Rr);      DR14_IIC_DUMP(DUMP_DATW,u32_Rr);      p_dr14_SetControl(DR14_IIC_FREE_ACK);      break;    case DR14_IIC_18_MT_SLA_ACK:           /* acknowledge on SLA+W           */      DR14_DATA_REG= u32_Rr= *(u8 *)st_dr14_IIC.st_ActTrf.pu8_Buf;      DR14_IIC_DUMP(DUMP_DATW,u32_Rr);      p_dr14_SetControl(DR14_IIC_FREE_ACK);      break;    case DR14_IIC_58_MR_DAT_NAK:           /* last byte read                 */      u8_Er= 1;      /* no break; */    case DR14_IIC_28_MT_DAT_ACK:           /* acknowledge on write byte      */      u8_Wr= 1 - u8_Er;  /* ~u8_Er ist not the same for 8bit u8s! */      /* no break */    case DR14_IIC_50_MR_DAT_ACK:           /* data byte received (wr==0)     */      /* store and count */      if (!u8_Wr)      {          *(u8 *)st_dr14_IIC.st_ActTrf.pu8_Buf= u32_Rr= DR14_DATA_REG;          DR14_IIC_DUMP(DUMP_DATR,u32_Rr);      }      st_dr14_IIC.st_ActTrf.pu8_Buf= (u8 *)st_dr14_IIC.st_ActTrf.pu8_Buf + 1;      /* no break; */    case DR14_IIC_40_MR_SLA_ACK:           /* acknowledge for SLA+R          */      /*      ** un_NBytes is already decremented in advance so      ** it becomes zero before reception of the      ** last byte      */      if(!u8_Er && --st_dr14_IIC.st_ActTrf.un_NBytes)      {          if (u8_Wr)          {              /* write next byte */              DR14_DATA_REG = u32_Rr= *(u8 *)st_dr14_IIC.st_ActTrf.pu8_Buf;              DR14_IIC_DUMP(DUMP_DATW,u32_Rr);          }          p_dr14_SetControl(DR14_IIC_FREE_ACK);    /* acknowledge for next */      }      else if (u8_Er|u8_Wr)      {          /* start nextJob or terminate ? */          p_dr14_IICEndOfJob();      }      else      {          p_dr14_SetControl(DR14_IIC_FREE_NOACK);          /* no ack to receive the last     */      }      break;      /* handling errors       * ****************************************************************/    case DR14_IIC_38_MX_ARB_LOST:          /* lost arbitration             */    case DR14_IIC_48_MR_SLA_NAK:           /* no acknowledge on SLA+R      */    case DR14_IIC_20_MT_SLA_NAK:           /* no acknowledge on SLA+W      */    case DR14_IIC_30_MT_DAT_NAK:           /* no acknowledge on write      */    default: /* e.g.: 0x00, Bus Error caused by erroneous START or STOP */#     ifdef IIC_GPIO_TRACE      /* GPIO_11 is pin 14 on the digital IO connector of the ABC PP */      sys2_GPIO.PortPin[11].port_pin =1;      /* Allows to trigger the Oscilloscope when this pin is high for > 50us */      delayUs(200);      sys2_GPIO.PortPin[11].port_pin =0;       delayUs(10);#     endif            if (u32_Rr == DR14_IIC_38_MX_ARB_LOST)      {          DR14_IIC_DUMP(DUMP_MARK,0xE2);          DR14_IIC_DUMP(DUMP_CON,DR14_CONTROL_REG);          DR14_IIC_DUMP(DUMP_GPIODAT1,(u8)sys2_GPIO.dat1);          p_dr14_SetControl(DR14_IIC_FREE_ACK);      }      else      {          DR14_IIC_DUMP(DUMP_MARK,0xE3);          DR14_IIC_DUMP(DUMP_CON,DR14_CONTROL_REG);          DR14_IIC_DUMP(DUMP_GPIODAT1,(u8)sys2_GPIO.dat1);          p_dr14_SetControl(DR14_IIC_STOP);      }      DR14_IIC_CHECK_FREE;      DR14_IIC_DUMP(DUMP_MARK,0xE4);      DR14_IIC_DUMP(DUMP_CON,DR14_CONTROL_REG);      DR14_IIC_DUMP(DUMP_GPIODAT1,(u8)sys2_GPIO.dat1);#   if (DR14_IIC_ACK_REQUIRED!=2)      if (st_dr14_IIC.u8_ErrorCount != 0) // retry (at first job of sequence)      {          st_dr14_IIC.u8_ErrorCount--;          st_dr14_IIC.pst_Jobs[st_dr14_IIC.u8_IdxActJob]            -= (st_dr14_IIC.u8_NextTrf - 1);          st_dr14_IIC.u8_NextTrf= 0;      }#   endif      #   if (DR14_IIC_ACK_REQUIRED==1)      else      {          EXCEPTION(0xDD);      }#   endif      st_dr14_IIC.u8_Abort= 1;      st_dr14_IIC.u8_Sta= u32_Rr;      p_dr14_IICEndOfJob();      break; // error cases  }  # ifdef IIC_GPIO_TRACE  sys2_GPIO.PortPin[10].port_pin =0;# endif  }  /* iic_interrupt *//* FUNCTIONAL DESCRIPTION * * returns the state of the bus * * * PARAMETER * return         !=0      busy *                ==0      free * * INTERFACE DECLARATION: ****************************************************/u32  p_dr14_IICBusy(void){  return st_dr14_IIC.u8_Busy;}/* FUNCTIONAL DESCRIPTION: * * Returns the value of the DACKN signal which is provided by the IIC * converter card (IIC slave 0x90) to indicate that a data byte can be read. * * The value of DACKN is 'active low'. * * If the global flag G_u8_dr04_IICDacknDisable is set, the function will * always return 0. This might be useful if no DACKN line is available * and the software running in the converter card behaves gracefully * for read attempts when no data is present, i.e. it has to return * an escape character in that case. * * PARAMETER * return    1  DACKN signal is high => no data available *           0  DACKN signal is low  => data can be read * * INTERFACE DECLARATION: ****************************************************/u32 p_dr14_IICDackn(void){  u32 ret;  if (st_dr14_IIC.u8_Dackn > SYS2_GPIO_MAX)  {      ret= 0; /* always 'Data ACKnowledge' */  }  else  {      ret= SYS2_GPIO_DAT_CHECK(st_dr14_IIC.u8_Dackn);  }  return ret;} /* p_dr14_IICDackn *//* FUNCTIONAL DESCRIPTION * * defines GPIO pin to be used as DACKN (does not GPIO properties DIR, UP, etc) * * * PARAMETER * u8_Pin         DACKN pin number, disables DACKN, if >SYS2_GPIO_MAX * * INTERFACE DECLARATION: ****************************************************/void      p_dr14_IICSetDackn(u32 u8_Pin){  st_dr14_IIC.u8_Dackn= u8_Pin;  SYS2_GPIO_DIR_CLEAR(u8_Pin);# ifdef VegaOne  SYS2_GPIO_MUX_CLEAR(u8_Pin);# endif  }/* FUNCTIONAL DESCRIPTION * * defines IIC clock * * * PARAMETER * u8_Clk         0/1/2/3 = 36, 48, 72, 96 kHz * * INTERFACE DECLARATION: ****************************************************/void      p_dr14_IICSetClk(u32 u8_Clk){  st_dr14_IIC.u8_Clk= u8_Clk;}/* FUNCTIONAL DESCRIPTION                                                *                                                                       * Initializes internal data of the IIC driver and starts the IIC hardware. * * INTERFACE DECLARATION: ****************************************************/void p_dr14_IICInit(){# ifdef VegaOne /*-----------------------------------------------------*/  {      SYS2_GPIO_MUX_SET(SYS2_GPIO_IIC_SCL);      SYS2_GPIO_DIR_SET(SYS2_GPIO_IIC_SCL);      SYS2_GPIO_MUX_SET(SYS2_GPIO_IIC_SDA);      SYS2_GPIO_DIR_SET(SYS2_GPIO_IIC_SDA);        VOLAT_U32(sys0_SCU.pb_pcon_on) |= SYS0_SCU_IIC_POWER_MASK;      VOLAT_U16(sys2_IIC.global) = SYS2_BLRES_IIC;  }  # elif !defined(VegaPro) /*----------------------------------------------*/    VOLATILE(sys2_GPIO.mux1,u16) |= SYS2_GPIO1_IIC_SEL;# if defined(Pin64onDemoBlue) || defined(Pin80onDemoBlue)  VOLATILE(sys2_GPIO.dir1,u16) |= (SYS2_GPIO1_01_IIC_SDA | SYS2_GPIO1_00_IIC_SCL);  /* Enable IIC power supply on demoblue board*/  sys2_GPIO.PortPin[23].port_pin = 0;# elif defined(Pin180onCEPBB) || defined(PLATFORM_2)  SYS2_GPIO_DIR_CLEAR(DR14_DACKN_GPIO);  # endif    VOLAT_U32(sys0_SCU.pb_pcon_on) |= SYS0_SCU_IIC_POWER_MASK;  VOLAT_U16(sys2_IIC.global) = SYS2_BLRES_IIC;  # else /* VegaPro --------------------------------------------------------*/  sys2_GPIO.mux1 |= SYS2_GPIO1_IIC_SEL;    VOLATILE(sys2_IIC.global, u16)= SYS2_BLRES_IIC | SYS2_IIC_ON;  VOLATILE(sys2_IIC.global, u16)= SYS2_IIC_ON; /* this clears BLRES */  VOLATILE(sys2_IIC.global, u16)= SYS2_IIC_ON; /* this turns IIC on */# endif    /* zeroing of global/static data already done by startup.a51   * esp: st_dr14_IIC.u8_Clk= 0;  minimum frequency active by default   */  st_dr14_IIC.u8_StopRequested= 1;  st_dr14_IIC.u8_ErrorCount=    DR14_IIC_MAX_ERRORS;  p_dr14_IICSetDackn(DR14_DACKN_GPIO);  /* S1ADR: address for slave modes | 1 if General Call is recognized */  DR14_ADDRESS_REG = 0xE4;              /* SLA by IIC-bus commitee, no GC */    p_dr14_SetControl(DR14_IIC_FREE_NOACK);#ifdef PT_MODULE  p_dr14_IICSetClk(SYS2_IIC_CLK48khz); /* LCDs are not fast enough for 96Hz */#else  p_dr14_IICSetClk(SYS2_IIC_CLK96khz);#endif    sys0_ICU.irq_enbs = SYS0_ICU_INT_IIC_IRQ;   /* enable IIC-interrupt */} /* p_dr14_IICInit */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩va欧美va亚洲va久久| 亚洲另类在线制服丝袜| 美女高潮久久久| 91精品免费观看| 男男视频亚洲欧美| 精品国产123| 成人在线综合网| 亚洲人成网站影音先锋播放| 一本久久综合亚洲鲁鲁五月天 | 国产精品久久看| 97精品久久久久中文字幕 | 亚洲成人动漫精品| 宅男在线国产精品| 国产福利精品一区二区| 综合久久给合久久狠狠狠97色| 色噜噜夜夜夜综合网| 日韩和的一区二区| 久久老女人爱爱| 色狠狠一区二区三区香蕉| 日韩成人伦理电影在线观看| 欧美成人精品3d动漫h| 不卡区在线中文字幕| 亚洲成人福利片| 精品国产乱码久久久久久闺蜜| 成人综合在线网站| 午夜精品在线看| 国产欧美一区二区精品婷婷| 色播五月激情综合网| 韩国av一区二区| 亚洲精品国产无套在线观| 欧美videos大乳护士334| 99久久99久久免费精品蜜臀| 无吗不卡中文字幕| 国产欧美一区二区精品久导航| 欧美天天综合网| 国产精品一区二区在线播放 | 亚洲国产成人午夜在线一区| 色狠狠桃花综合| 国产精品一区二区你懂的| 亚洲综合免费观看高清完整版| 日韩欧美国产成人一区二区| 色综合天天视频在线观看 | 亚洲精品在线观看网站| 欧美亚一区二区| 成人一级片网址| 久久99日本精品| 一个色综合av| 日本一区二区三区免费乱视频| 欧美三级在线播放| 91蝌蚪porny| 国产福利一区二区三区视频在线| 偷拍亚洲欧洲综合| 国产精品激情偷乱一区二区∴| 日韩欧美亚洲一区二区| 在线免费观看成人短视频| 高清成人在线观看| 久久国产精品色| 亚洲国产精品久久艾草纯爱| 国产精品久久久久久久久免费樱桃 | 国产一区二区三区四区在线观看| 亚洲午夜精品在线| 亚洲黄色性网站| 国产精品嫩草久久久久| 精品国产a毛片| 日韩免费在线观看| 这里只有精品免费| 欧美日韩激情在线| 欧美在线播放高清精品| eeuss鲁一区二区三区| 国产成人精品免费一区二区| 国内欧美视频一区二区| 精品一区免费av| 美女视频第一区二区三区免费观看网站 | 国产亚洲综合在线| 精品久久久久香蕉网| 欧美成人官网二区| 欧美久久久久久久久中文字幕| 91免费看`日韩一区二区| 9色porny自拍视频一区二区| 成人午夜精品一区二区三区| 国产激情一区二区三区| 国产成人在线色| 国产盗摄精品一区二区三区在线| 国产精品影视在线观看| 国产成人午夜视频| 99九九99九九九视频精品| av在线不卡网| 一本久久a久久精品亚洲| 色哟哟一区二区三区| 欧美性受xxxx黑人xyx性爽| 精品视频一区 二区 三区| 欧美视频中文字幕| 5858s免费视频成人| 日韩美女天天操| 精品盗摄一区二区三区| 久久久久久9999| 国产精品水嫩水嫩| 亚洲三级在线看| 亚洲高清不卡在线观看| 蜜臀a∨国产成人精品| 国产精品1区二区.| www.在线欧美| 欧美日韩电影一区| 日韩免费电影网站| 国产亚洲精品久| 亚洲视频网在线直播| 午夜欧美电影在线观看| 国产一区二区三区四区五区美女| 成人丝袜高跟foot| 欧美日韩视频在线观看一区二区三区| 91精品国产美女浴室洗澡无遮挡| 精品91自产拍在线观看一区| 国产日产欧产精品推荐色| 亚洲欧美日韩一区二区三区在线观看 | 91视频com| 日韩免费电影一区| 成人免费一区二区三区视频| 视频一区视频二区中文| 国产麻豆精品theporn| 日本国产一区二区| 精品国产百合女同互慰| 精品亚洲成a人| 成人18视频在线播放| 欧美日韩亚洲综合| 国产欧美日本一区视频| 午夜精品久久久久影视| 国产99一区视频免费| 欧美视频你懂的| 国产日韩欧美a| 日韩成人一区二区| av高清不卡在线| 日韩精品一区二区三区中文不卡 | 国产精品嫩草影院av蜜臀| 日韩成人一区二区| 色综合久久六月婷婷中文字幕| 欧美一区二区三区爱爱| 亚洲免费av高清| 国产精品中文字幕一区二区三区| 欧美日韩国产成人在线免费| 国产精品每日更新| 久久精品国产亚洲aⅴ| 欧美影片第一页| 中文字幕在线不卡国产视频| 韩国av一区二区三区在线观看| 欧美日韩美少妇| 中文字幕一区日韩精品欧美| 麻豆精品久久久| 欧美日韩高清在线| 亚洲人成亚洲人成在线观看图片| 国产高清精品久久久久| 日韩欧美成人一区二区| 午夜精品久久久久久久蜜桃app| 91天堂素人约啪| 国产精品日日摸夜夜摸av| 国产精品66部| 久久精品人人爽人人爽| 国产一区二区精品在线观看| 日韩精品一区二区三区在线观看| 五月天激情综合网| 欧美老肥妇做.爰bbww| 亚洲一区影音先锋| 色综合色综合色综合色综合色综合| 亚洲国产精品国自产拍av| 韩国女主播一区| 欧美精品一区二区在线观看| 久久精品噜噜噜成人88aⅴ| 欧美军同video69gay| 亚洲国产精品影院| 欧美日本韩国一区二区三区视频| 亚洲一区二区三区爽爽爽爽爽| 色综合 综合色| 亚洲自拍欧美精品| 欧美体内she精高潮| 午夜不卡在线视频| 91麻豆精品91久久久久同性| 日韩在线播放一区二区| 欧美精品乱码久久久久久按摩| 五月天激情综合| 日韩一区二区三区四区| 美女国产一区二区| 久久久三级国产网站| 成人动漫一区二区三区| 国产精品久久久久一区二区三区| 成人高清视频免费观看| 亚洲精品欧美激情| 欧美色老头old∨ideo| 午夜成人免费电影| 日韩欧美一区中文| 国产不卡高清在线观看视频| 亚洲天堂av一区| 欧美日韩中文字幕一区二区| 日本成人在线看| 精品国产sm最大网站免费看| 丁香五精品蜜臀久久久久99网站| 亚洲欧美在线高清| 欧美视频一区二区三区四区 | av在线一区二区三区| 亚洲成人动漫在线免费观看| 亚洲精品在线电影| av在线一区二区三区|