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

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

?? ds8007.lst

?? dallas公司的ds8007芯片源代碼。絕對好用??梢约嫒輙da8007.
?? LST
?? 第 1 頁 / 共 5 頁
字號:
1011   3                      }
1012   2              }
1013   1              return 0;
1014   1      }
1015          
1016          int16_t dssc_powerdown()
1017          {
1018   1              uint8_t val;
1019   1      
1020   1              // Power down the card
1021   1              val = dssc_readregister(PCR);
1022   1              dssc_writeregister(PCR,val & ~PCR_START_MASK);
1023   1      
1024   1              return 0;
1025   1      }
1026          
1027          int16_t dssc_selectcard(uint8_t slot)
1028          {
1029   1              uint8_t val;
1030   1      
1031   1              val = dssc_readregister(CSR);
1032   1              switch (slot) 
1033   1              {
1034   2          case 1:
1035   2                      // Select appropriate smartcard and clear other card selects
1036   2                      dssc_writeregister(CSR,val & ~(CSR_SC3_MASK|CSR_SC2_MASK) | CSR_SC1_MASK);
1037   2                      break;
1038   2              case 2:
1039   2                      // Select appropriate smartcard and clear other card selects
1040   2                      dssc_writeregister(CSR,val & ~(CSR_SC3_MASK|CSR_SC1_MASK) | CSR_SC2_MASK);
1041   2                      break;
1042   2              case 3:
1043   2                      // Select appropriate smartcard and clear other card selects
1044   2                      dssc_writeregister(CSR,val & ~(CSR_SC2_MASK|CSR_SC1_MASK) | CSR_SC3_MASK);
1045   2                      break;
1046   2              default:
C51 COMPILER V8.08   DS8007                                                                10/26/2007 09:32:25 PAGE 18  

1047   2                      return ERR_INVALID_SLOT;
1048   2              }
1049   1      
1050   1              // Set global slot identifier value
1051   1              currentSlot = slot-1;
1052   1      
1053   1              return 0;
1054   1      }
1055          
1056          int16_t dssc_checkpresence(uint8_t slot)
1057          {
1058   1              uint8_t val;
1059   1      
1060   1              val = dssc_readregister(MSR);
1061   1      
1062   1              switch(slot)
1063   1              {
1064   2          case 1:
1065   2                      if (val & MSR_PR1_MASK) return 1;
1066   2                      break;
1067   2              case 2:
1068   2                      if (val & MSR_PR2_MASK) return 1;
1069   2                      break;
1070   2              default:
1071   2                      return ERR_INVALID_SLOT;
1072   2                      break;
1073   2              }
1074   1              return 0;
1075   1      }
1076          
1077          /*
1078          Library initialization
1079          */
1080          int16_t dssc_init()
1081          {
1082   1              uint8_t val;
1083   1      
1084   1              // Reset the UART
1085   1              dssc_writeregister(CSR,0x00);
1086   1      
1087   1              // Select smart card slot 1
1088   1              dssc_writeregister(CSR,CSR_SC1_MASK);
1089   1      
1090   1              // Make sure card is powered down
1091   1              val = dssc_readregister(PCR);
1092   1              dssc_writeregister(PCR,val & ~PCR_START_MASK);
1093   1      
1094   1              // Select smart card slot 2
1095   1              dssc_writeregister(CSR,CSR_SC2_MASK);
1096   1      
1097   1              // Make sure card is powered down
1098   1              val = dssc_readregister(PCR);
1099   1              dssc_writeregister(PCR,val & ~PCR_START_MASK);
1100   1      
1101   1              // Select smart card slot 3
1102   1              dssc_writeregister(CSR,CSR_SC3_MASK);
1103   1      
1104   1              // Deselect all cards
1105   1              dssc_writeregister(CSR,0x00);
1106   1      
1107   1              return 0;
1108   1      }
C51 COMPILER V8.08   DS8007                                                                10/26/2007 09:32:25 PAGE 19  

1109          
1110          int16_t dssc_getATRbuffer(uint8_t *buff, int16_t length)
1111          {
1112   1              memcpy(buff,workingBuffer,(length<ATRLength[currentSlot])?length:ATRLength[currentSlot]);
1113   1              return ATRLength[currentSlot];
1114   1      }
1115          
1116          void dssc_getATR(struct ATR *userATR)
1117          {
1118   1              memcpy(userATR,&lastATR[currentSlot],sizeof(struct ATR));
1119   1      }
1120          
1121          #pragma REGPARMS
1122          uint8_t dssc_readregister(uint8_t address)
1123          {
1124   1              idata uint8_t rAddress, toReturn;
1125   1      #ifdef DEBUG_CRED
                      idata uint8_t count = 0;
              #endif
1128   1              rAddress = address;
1129   1      
1130   1              //ds5250 DMOS |= 0x01;
1131   1              RPCTL |= 0x20;
1132   1              P1 &= 0xEF;        // Happy CS for DS8007 on Eval Refrence Design
1133   1              switch (rAddress)
1134   1              {
1135   2          case URR:
1136   2                      // If reading URR, check the CRED bit in MSR so that
1137   2                      // we don't overrun the DS8007.  See MSR.CRED bit description on page
1138   2                      // 18 of DS8007 spec.
1139   2      #ifdef DEBUG_CRED
                              while (!(BASE_ADDRESS[MSR] & MSR_CRED_MASK))
                              {
                              // If card de-powers exit with zero return value.
                              if ((BASE_ADDRESS[PCR] & 0x01) == 0)
                                      {
                                              //ds5250 DMOS &= 0xFE;
                                              P1 |= 0x10;        // Happy CS for DS8007 on Eval Refrence Design
              
                                              RPCTL &= 0xDF;
                                      return 0;
                                      }
              
                                      count++;
                                      if (count == 30000)
                                      {
                                              printf("CRED read locked up on: %02bx\n",rAddress);
                                              printf("PCR: %02bx\n",BASE_ADDRESS[PCR]);
                                              printf("HSR: %02bx\n",BASE_ADDRESS[HSR]);
                                              count = 0;
                                      }
                              }
              #else
1162   2                      while (!(BASE_ADDRESS[MSR] & MSR_CRED_MASK))
1163   2                      {
1164   3                              // If card de-powers exit with zero return value.
1165   3                              if ((BASE_ADDRESS[PCR] & 0x01) == 0)
1166   3                      {
1167   4                                      //ds5250 DMOS &= 0xFE;
1168   4                                      P1 |= 0x10;        // Happy CS for DS8007 on Eval Refrence Design
1169   4      
1170   4                                      RPCTL &= 0xDF;
C51 COMPILER V8.08   DS8007                                                                10/26/2007 09:32:25 PAGE 20  

1171   4                              return 0;
1172   4                              }
1173   3                      }
1174   2      #endif
1175   2                              break;
1176   2                      default:
1177   2                              break;
1178   2              }
1179   1      
1180   1              toReturn = BASE_ADDRESS[rAddress];
1181   1              //ds5250 DMOS &= 0xFE;
1182   1              P1 |= 0x10;        // Happy CS for DS8007 on Eval Refrence Design
1183   1      
1184   1              RPCTL &= 0xDF;
1185   1              return toReturn;
1186   1      
1187   1      }
1188          
1189          void dssc_writeregister(uint8_t address,uint8_t value)
1190          {
1191   1              idata uint8_t rAddress, rValue ;
1192   1      #ifdef DEBUG_CRED
                      idata int count = 0;
              #endif
1195   1              rAddress = address;
1196   1              rValue = value;
1197   1      
1198   1              //ds5250 DMOS |= 0x01;
1199   1              RPCTL |= 0x20;
1200   1              P1 &= 0xEF;        // Happy CS for DS8007 on Eval Refrence Design
1201   1              switch (rAddress)
1202   1              {
1203   2              case TOC:
1204   2          case UTR:
1205   2                      // If writing TOC or UTR, check the CRED bit in MSR so that
1206   2                      // we don't overrun the DS8007.  See MSR.CRED bit description on page
1207   2                      // 18 of DS8007 spec.
1208   2      #ifdef DEBUG_CRED
                              while (!(BASE_ADDRESS[MSR] & MSR_CRED_MASK))
                              {
                                      // If card de-powers exit with zero return value.
                              if ((BASE_ADDRESS[PCR] & 0x01) == 0)
                              {
                                              //ds5250 DMOS &= 0xFE;
                                              P1 |= 0x10;        // Happy CS for DS8007 on Eval Refrence Design
              
                                              RPCTL &= 0xDF;
                                              return;
                                      }
                              count++;
                                      if (count == 30000)
                                      {
                                              printf("CRED write locked up on: %02bx\n",rAddress);
                                              printf("PCR: %02bx\n",BASE_ADDRESS[PCR]);
                                              printf("HSR: %02bx\n",BASE_ADDRESS[HSR]);
                                              count = 0;
                                      }
                              }
              #else
1230   2                      while (!(BASE_ADDRESS[MSR] & MSR_CRED_MASK));
1231   2      #endif
1232   2                      break;
C51 COMPILER V8.08   DS8007                                                                10/26/2007 09:32:25 PAGE 21  

1233   2                  default:
1234   2                      break;
1235   2              }
1236   1              BASE_ADDRESS[rAddress] = rValue;
1237   1      
1238   1              //ds5250 DMOS &= 0xFE;
1239   1              P1 |= 0x10;        // Happy CS for DS8007 on Eval Refrence Design
1240   1              RPCTL &= 0xDF;
1241   1      
1242   1      }
1243          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4892    ----
   CONSTANT SIZE    =    100    ----
   XDATA SIZE       =    715     818
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----       4
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美变态口味重另类| 国产一区二区福利| 国产精品视频看| 日韩精品一区二区三区视频播放| 色欧美日韩亚洲| 在线观看av一区| 欧美日韩国产综合久久| 欧美高清激情brazzers| 91精品国产一区二区人妖| 欧美日韩亚洲另类| 欧美一区二区日韩一区二区| 欧美老年两性高潮| 欧美本精品男人aⅴ天堂| 精品乱人伦小说| 国产日韩亚洲欧美综合| 欧美国产综合色视频| 国产精品国产自产拍在线| 亚洲天堂2014| 婷婷激情综合网| 久久精品理论片| 成人h精品动漫一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 91极品视觉盛宴| 欧美一区二区三区视频在线观看| 精品伦理精品一区| 国产精品久久二区二区| 亚洲成人先锋电影| 国产一区二区伦理| 91黄色免费看| 欧美精品一区二区三区四区| 国产精品免费免费| 日韩av高清在线观看| 国产麻豆成人传媒免费观看| 色婷婷久久久综合中文字幕 | 久久精品水蜜桃av综合天堂| 国产精品色一区二区三区| 一区二区在线观看视频| 久久精品国产免费| 在线视频综合导航| 精品国产乱码久久久久久影片| 亚洲欧美日韩国产手机在线| 日产国产高清一区二区三区| av电影在线观看完整版一区二区| 欧美三级在线看| 欧美激情一区在线| 久久精品国产亚洲高清剧情介绍| 91丨九色丨国产丨porny| 欧美不卡视频一区| 婷婷开心激情综合| 91成人网在线| 中文字幕一区不卡| 韩国精品久久久| 7777女厕盗摄久久久| 亚洲图片另类小说| 日韩一级免费观看| 91久久精品一区二区三| 国产精品素人视频| 国精产品一区一区三区mba桃花| 一本到不卡免费一区二区| 国产亚洲欧洲一区高清在线观看| 视频一区二区欧美| 欧洲av一区二区嗯嗯嗯啊| 国产精品女主播在线观看| 紧缚捆绑精品一区二区| 欧美一级搡bbbb搡bbbb| 亚洲高清视频在线| 日本久久电影网| 亚洲欧美日韩国产成人精品影院| 国产sm精品调教视频网站| 欧美成人vps| 精品在线视频一区| 精品国产91亚洲一区二区三区婷婷| 亚洲成人精品一区二区| 精品视频1区2区3区| 亚洲激情在线激情| 欧美优质美女网站| 亚洲一二三四区| 日本精品一级二级| 一区二区三区四区蜜桃| 色综合一个色综合| 亚洲成人先锋电影| 日韩亚洲欧美一区二区三区| 日本不卡免费在线视频| 欧美一级日韩不卡播放免费| 免费观看日韩av| 久久久99精品久久| 本田岬高潮一区二区三区| 中文字幕欧美一区| 在线观看av不卡| 日韩和欧美一区二区| 欧美www视频| 国产不卡免费视频| 亚洲欧美日韩国产成人精品影院| 欧美视频一区二区在线观看| 日日摸夜夜添夜夜添国产精品 | 91热门视频在线观看| 夜夜爽夜夜爽精品视频| 欧美丝袜丝交足nylons| 亚洲va欧美va人人爽午夜| 欧美一区二区三区日韩视频| 国产一区二区毛片| 一区二区三区四区在线免费观看| 欧美日韩在线亚洲一区蜜芽| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品国产91乱码一区二区三区 | 69堂国产成人免费视频| 久久精品国产第一区二区三区| 国产视频一区在线播放| 色综合天天在线| 免费观看91视频大全| 中文字幕欧美激情| 91精品国产综合久久久久| 国产传媒日韩欧美成人| 亚洲成人一区二区| 国产精品三级av| 欧美日韩国产经典色站一区二区三区| 国产综合久久久久影院| 亚洲激情图片一区| 精品sm捆绑视频| 欧美日韩精品一区二区在线播放| 国产精品一区二区在线看| 一区二区在线观看视频| 国产日韩av一区二区| 精品视频在线免费| 91麻豆swag| 国产精品亚洲一区二区三区妖精 | 777午夜精品视频在线播放| 成人激情电影免费在线观看| 视频精品一区二区| 一区二区三区在线视频播放| 精品乱人伦一区二区三区| 欧美三级视频在线观看| 97久久超碰精品国产| 精品亚洲porn| 精品在线观看视频| 日本视频一区二区| 亚洲成人激情av| 亚洲另类春色国产| 中文字幕一区在线| 国产精品激情偷乱一区二区∴| 久久久噜噜噜久噜久久综合| 91精品国产日韩91久久久久久| 欧美性猛交xxxx黑人交| 色综合色综合色综合| 91麻豆免费看片| 色综合天天综合狠狠| 色悠悠亚洲一区二区| 97精品超碰一区二区三区| 成人性生交大片免费| 成人精品一区二区三区四区| 国产一区二区三区免费观看| 激情综合亚洲精品| 极品瑜伽女神91| 国产乱人伦偷精品视频免下载| 麻豆精品一区二区三区| 久久国产成人午夜av影院| 蜜臀va亚洲va欧美va天堂| 美女视频一区二区| 国产呦萝稀缺另类资源| 国产一区二区成人久久免费影院| 国内久久精品视频| 国产成人高清在线| 成人午夜av在线| 91影视在线播放| 精品视频在线视频| 精品蜜桃在线看| 中文字幕一区二区在线观看| 亚洲嫩草精品久久| 亚洲成人午夜影院| 精东粉嫩av免费一区二区三区| 国产一区二区三区四区五区入口| 国产成人在线视频播放| 99国产麻豆精品| 欧美日韩精品免费观看视频| 日韩无一区二区| 中文字幕乱码日本亚洲一区二区| 亚洲视频精选在线| 天堂午夜影视日韩欧美一区二区| 麻豆91小视频| caoporen国产精品视频| 欧美三级蜜桃2在线观看| 日韩欧美高清dvd碟片| 亚洲国产精品激情在线观看| 亚洲卡通欧美制服中文| 免费成人你懂的| 91女厕偷拍女厕偷拍高清| 欧美一级片在线看| 亚洲同性同志一二三专区| 日本午夜一区二区| eeuss鲁片一区二区三区在线观看| 欧美日韩国产影片| 国产精品视频免费看| 免费成人在线影院| 91国产免费看| 国产三级三级三级精品8ⅰ区| 一区二区三区产品免费精品久久75| 免费看欧美女人艹b| 91年精品国产| 国产精品伦一区二区三级视频| 视频在线观看一区|