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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pca.cc

?? Small Device C Compiler 面向Inter8051
?? CC
字號:
/* * Simulator of microcontrollers (pca.cc) * * Copyright (C) 1999,99 Drotos Daniel, Talker Bt. *  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu * *//* This file is part of microcontroller simulator: ucsim.UCSIM is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.UCSIM is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with UCSIM; see the file COPYING.  If not, write to the FreeSoftware Foundation, 59 Temple Place - Suite 330, Boston, MA02111-1307, USA. *//*@1@*/#include <ctype.h>// sim.src#include "itsrccl.h"// local#include "pcacl.h"#include "regs51.h"#include "types51.h"cl_pca::cl_pca(class cl_uc *auc, int aid):  cl_hw(auc, HW_PCA, aid, "pca"){  t0_overflows= ECI_edge= 0;  int i;  for (i= 0; i < 5; cex_pos[i]= cex_neg[i]= DD_FALSE, i++) ;}intcl_pca::init(void){  class cl_mem *sfr= uc->mem(MEM_SFR);  t_addr CCAPL[5]= {CCAPL[0], CCAPL[1], CCAPL[2], CCAPL[3], CCAPL[4]};  t_addr CCAPH[5]= {CCAPH[0], CCAPH[1], CCAPH[2], CCAPH[3], CCAPH[4]};  t_addr CCAPM[5]= {CCAPM[0], CCAPM[1], CCAPM[2], CCAPM[3], CCAPM[4]};  int i;  if (!sfr)    {      fprintf(stderr, "No SFR to register PCA[%d] into\n", id);    }  register_cell(sfr, CMOD, &cell_cmod, wtd_restore_write);  register_cell(sfr, CCON, &cell_ccon, wtd_restore_write);  for (i= 0; i < 5; i++)    {      use_cell(sfr, CCAPL[i], &cell_ccapl[i], wtd_restore);      use_cell(sfr, CCAPH[i], &cell_ccaph[i], wtd_restore);      register_cell(sfr, CCAPM[i], &cell_ccapm[i], wtd_restore_write);    }  use_cell(sfr, CL, &cell_cl, wtd_restore);  use_cell(sfr, CH, &cell_ch, wtd_restore);  return(0);}voidcl_pca::added_to_uc(void){  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCCF4, 0x0033, false,					  "PCA module #4", 5));  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCCF3, 0x0033, false,					  "PCA module #3", 5));  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCCF2, 0x0033, false,					  "PCA module #2", 5));  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCCF1, 0x0033, false,					  "PCA module #1", 5));  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCCF0, 0x0033, false,					  "PCA module #0", 5));  uc->it_sources->add_at(4, new cl_it_src(bmEC, CCON, bmCF, 0x0033, false,					  "PCA counter", 5));}voidcl_pca::write(class cl_cell *cell, t_mem *val){  //uchar bmCEX[5]= {bmCEX0, bmCEX1, bmCEX2, bmCEX3, bmCEX4};  //uchar bmCCF[5]= {bmCCF0, bmCCF1, bmCCF2, bmCCF3, bmCCF4};  if (cell == cell_cmod)    {      bit_CIDL= *val & bmCIDL;      bit_WDTE= *val & bmWDTE;      bit_ECF = *val & bmECF;      t_mem o= clk_source;      if ((clk_source= *val & (bmCPS1|bmCPS0)) != o)	t0_overflows= ECI_edge= 0;    }  else if (cell == cell_ccon)    {      bit_CR= *val & bmCR;    }  else    {      int i;      for (i= 0; i < 5; i++)	{	  if (cell == cell_ccapm[i])	    {	      t_mem o= ccapm[i];	      ccapm[i]= *val & 0xff;	      if (o != ccapm[i])		cex_neg[i]= cex_pos[i]= DD_FALSE;	    }	  else	    {	      if (ccapm[i] & (bmMAT|bmTOG))	      {		if (cell == cell_ccapl[i])		  {		    cell_ccapm[i]->set_bit0(bmECOM);		    ccapm[i]= cell_ccapm[i]->get();		  }		else if (cell == cell_ccaph[i])		  {		    cell_ccapm[i]->set_bit1(bmECOM);		    ccapm[i]= cell_ccapm[i]->get();		  }	      }	    }	}    }}/*voidcl_pca::mem_cell_changed(class cl_mem *mem, t_addr addr){  class cl_mem *sfr= uc->mem(MEM_SFR);  if (mem && sfr && mem == sfr)    {      if (addr == addr_ccapXl)	ccapXl= sfr->get_cell(addr_ccapXl);      else if (addr == addr_ccapXh)	ccapXh= sfr->get_cell(addr_ccapXh);      else if (addr == addr_ccapmX)	ccapmX= sfr->get_cell(addr_ccapmX);    }}*/intcl_pca::tick(int cycles){  int ret= resGO;  if (!bit_CR)    return(resGO);  if (uc->state == stIDLE &&      bit_CIDL)    return(resGO);  switch (clk_source)    {    case 0:      do_pca_counter(cycles);      break;    case bmCPS0:      do_pca_counter(cycles*3);      break;    case bmCPS1:      do_pca_counter(t0_overflows);      t0_overflows= 0;      break;    case (bmCPS0|bmCPS1):      do_pca_counter(ECI_edge);      ECI_edge= 0;      break;    }  return(ret);}voidcl_pca::do_pca_counter(int cycles){  //class cl_mem *sfr= uc->mem(MEM_SFR);  while (cycles--)    {      if (cell_cl->add(1) == 0)	{	  int i;	  for (i= 0; i < 5; i++)	    if (ccapm[i] & bmPWM)	      cell_ccapl[i]->set(cell_ccaph[i]->get());	  if (cell_ch->add(1) == 0)	    {	      // CH,CL overflow	      cell_ccon->set_bit1(bmCF);	      do_pca_module(0);	      do_pca_module(1);	      do_pca_module(2);	      do_pca_module(3);	      do_pca_module(4);	    }	}    }}voidcl_pca::do_pca_module(int nr){  class cl_mem *sfr= uc->mem(MEM_SFR);  uchar bmCEX[5]= {bmCEX0, bmCEX1, bmCEX2, bmCEX3, bmCEX4};  uchar bmCCF[5]= {bmCCF0, bmCCF1, bmCCF2, bmCCF3, bmCCF4};  //uint p1= sfr->get(P1);  bool capture= DD_FALSE;  if ((ccapm[nr] & bmCAPP) &&      cex_pos[nr])    {      capture= DD_TRUE;      cex_pos[nr]= DD_FALSE;    }  if ((ccapm[nr] & bmCAPN) &&      cex_neg[nr])    {      capture= DD_TRUE;      cex_pos[nr]= DD_FALSE;    }  if (capture)    {      // Capture      cell_ccapl[nr]->set(cell_cl->get());      cell_ccaph[nr]->set(cell_ch->get());      cell_ccon->set_bit1(bmCCF[nr]);    }  if (ccapm[nr] & bmECOM)    {      // Comparator enabled      if (cell_cl->get() == cell_ccapl[nr]->get() &&	  cell_ch->get() == cell_ccaph[nr]->get())	{	  // Match	  if (nr == 4 &&	      (bit_WDTE))	    {	      reset();	      return;	    }	  cell_ccon->set_bit1(bmCCF[nr]);	  if (ccapm[nr] & bmTOG)	    {	      // Toggle	      sfr->set(P1, sfr->get(P1) ^ bmCEX[nr]);	    }	}      if (ccapm[nr] & bmPWM)	{	  // PWM	  /*if (cell_cl->get() == 0)	    cell_ccapl[nr]->set(cell_ccaph[nr]->get());*/	  if (cell_cl->get() < cell_ccapl[nr]->get())	    //sfr->set(P1, sfr->get(P1) & ~(bmCEX[nr]));	    sfr->set_bit1(P1, bmCEX[nr]);	  else	    sfr->set_bit1(P1, bmCEX[nr]);	}    }}voidcl_pca::reset(void){  t0_overflows= ECI_edge= 0;  int i;  for (i= 0; i < 5; cex_pos[i]= cex_neg[i]= DD_FALSE, i++) ;}voidcl_pca::happen(class cl_hw *where, enum hw_event he, void *params){  struct ev_port_changed *ep= (struct ev_port_changed *)params;  uchar bmCEX[5]= {bmCEX0, bmCEX1, bmCEX2, bmCEX3, bmCEX4};  if (where->cathegory == HW_PORT &&      he == EV_PORT_CHANGED &&      ep->id == 1)    {      t_mem p1n= ep->new_pins & ep->new_value;      t_mem p1o= ep->pins & ep->prev_value;      if (!(p1n & bmECI) &&	  (p1o & bmECI))	ECI_edge++;      int i;      for (i= 0; i < 5; i++)	{	  if (!(p1n & bmCEX[i]) &&	      (p1o & bmCEX[i]))	    cex_neg[i]= DD_TRUE;	  else if ((p1n & bmCEX[i]) &&		   !(p1o & bmCEX[i]))	    cex_pos[i]= DD_TRUE;	}    }  else if (where->cathegory == HW_TIMER &&	   he == EV_OVERFLOW &&	   where->id == 0)    {      t0_overflows++;    }}voidcl_pca::print_info(class cl_console *con){  con->dd_printf("%s[%d] FIXME\n", id_string, id);}/* End of s51.src/pca.cc */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人app在线观看| 九一九一国产精品| 欧美午夜不卡视频| 香蕉乱码成人久久天堂爱免费| 日本韩国一区二区三区| 亚洲精品欧美激情| 欧美日韩高清不卡| 久久精品二区亚洲w码| www亚洲一区| 成人午夜av影视| 亚洲一卡二卡三卡四卡无卡久久 | 欧美色图免费看| 亚洲国产精品影院| 日韩欧美成人激情| 粉嫩av一区二区三区粉嫩| 中文字幕一区av| 欧美日韩一级二级三级| 国产在线一区观看| 中文字幕一区二区不卡 | 99re热这里只有精品免费视频| 亚洲精品一二三| 精品奇米国产一区二区三区| 国产一区二区三区免费观看| 亚洲三级久久久| 日韩欧美一级特黄在线播放| av中文一区二区三区| 午夜精品影院在线观看| 久久综合九色综合欧美98| 99久久久无码国产精品| 麻豆国产精品一区二区三区| 亚洲少妇中出一区| 5566中文字幕一区二区电影| 白白色 亚洲乱淫| 日韩av电影天堂| 国产精品女主播av| 欧美一区二区久久久| av毛片久久久久**hd| 麻豆91精品视频| 一区二区三区在线高清| 久久久国际精品| 欧美日韩国产欧美日美国产精品| 国产成人综合网| 日韩在线a电影| 亚洲视频中文字幕| 久久人人爽爽爽人久久久| 欧美视频日韩视频在线观看| 成人免费高清在线观看| 久久国产精品无码网站| 亚洲va欧美va天堂v国产综合| 国产精品毛片大码女人| 久久综合久久久久88| 91精品国产综合久久婷婷香蕉| 91免费版在线看| 国产91精品露脸国语对白| 麻豆视频一区二区| 日本成人超碰在线观看| 夜夜亚洲天天久久| 亚洲精品中文字幕乱码三区| 国产三级精品三级在线专区| 日韩视频一区在线观看| 777色狠狠一区二区三区| 91久久国产最好的精华液| 91在线视频网址| av资源网一区| av一区二区三区四区| 粗大黑人巨茎大战欧美成人| 精品一区二区免费| 久久精品999| 日本欧美一区二区| 日韩成人免费在线| 日产国产高清一区二区三区| 五月婷婷综合网| 午夜精品久久久久久久99樱桃| 亚洲一区自拍偷拍| 一区二区三区四区乱视频| 亚洲码国产岛国毛片在线| 亚洲日本一区二区| 一级特黄大欧美久久久| 亚洲综合视频在线| 日韩国产高清在线| 蜜臀国产一区二区三区在线播放 | 激情综合网天天干| 久99久精品视频免费观看| 国产真实乱偷精品视频免| 国产一区美女在线| 懂色一区二区三区免费观看| 成人动漫一区二区在线| 91污在线观看| 欧美三级日韩三级国产三级| 91精品国产综合久久久久久漫画| 正在播放亚洲一区| 欧美电影免费观看高清完整版| 欧美精品一区二区久久久| 国产欧美一区在线| 亚洲欧美日韩久久| 天天操天天综合网| 国产在线一区二区| 成人动漫在线一区| 精品视频在线免费| 精品国产自在久精品国产| 久久精品人人做人人爽人人| 日韩毛片视频在线看| 天天色图综合网| 国产99久久久久久免费看农村| 色婷婷激情久久| 欧美成人a视频| 综合久久久久久| 天天影视色香欲综合网老头| 国产精品亚洲а∨天堂免在线| 不卡区在线中文字幕| 欧美一区二区在线观看| 中文无字幕一区二区三区| 亚洲一区视频在线| 韩国女主播一区| 色综合天天综合网国产成人综合天 | 91精彩视频在线观看| 日韩一区二区三区四区五区六区 | 成人av在线一区二区| 在线观看不卡一区| www亚洲一区| 日韩制服丝袜先锋影音| 成人教育av在线| 日韩一区二区在线看片| 中文字幕制服丝袜一区二区三区| 日日夜夜一区二区| 99久久99久久精品免费观看| 日韩欧美在线综合网| 亚洲综合另类小说| 东方aⅴ免费观看久久av| 91精品国产一区二区人妖| ...av二区三区久久精品| 毛片一区二区三区| 欧美午夜一区二区三区免费大片| 久久综合一区二区| 日本欧美在线观看| 欧美亚洲国产一卡| 国产精品成人一区二区三区夜夜夜| 日本欧洲一区二区| 欧美午夜精品一区二区三区| 国产精品色呦呦| 国产精品一二一区| 日韩欧美一区二区三区在线| 亚洲综合在线第一页| 暴力调教一区二区三区| 国产日韩欧美精品在线| 久久精品国产久精国产| 欧美日韩午夜精品| 一区二区三区四区不卡视频| 成人av电影在线网| 国产亲近乱来精品视频| 玖玖九九国产精品| 欧美一区二区三区免费在线看| 一区二区三区日本| 91性感美女视频| 国产精品久久久久久久久晋中 | 国产麻豆午夜三级精品| 欧美一级免费观看| 亚洲成av人影院在线观看网| 一本一道综合狠狠老| 自拍偷拍国产精品| 91麻豆成人久久精品二区三区| 中文字幕欧美日本乱码一线二线| 国产精品99久久久久久似苏梦涵 | 制服丝袜国产精品| 日韩av不卡在线观看| 欧美乱熟臀69xxxxxx| 午夜精品福利在线| 欧美一区二区三区影视| 蜜臀av一区二区在线免费观看| 91精品国产综合久久久蜜臀粉嫩 | 蜜臀91精品一区二区三区| 欧美日本乱大交xxxxx| 午夜影视日本亚洲欧洲精品| 欧美色爱综合网| 免费在线看成人av| 日韩欧美亚洲一区二区| 狠狠色综合日日| 久久久久久一二三区| 韩国成人精品a∨在线观看| 久久人人97超碰com| 成人性视频网站| 亚洲精品中文字幕乱码三区| 欧美日韩一区视频| 美腿丝袜亚洲一区| 久久精品夜色噜噜亚洲a∨| 99在线视频精品| 亚洲一区二区高清| 日韩三级视频在线观看| 国产激情一区二区三区四区 | 亚洲永久精品大片| 日韩一区二区在线观看视频播放| 激情五月婷婷综合网| 国产精品视频免费| 91成人国产精品| 国产在线一区观看| 亚洲视频每日更新| 欧美成人一区二区| 成人精品国产一区二区4080| 亚洲午夜免费视频| 精品久久久久99|