注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
tiankai001的个人空间 https://home.eeworld.com.cn/space-uid-139222.html [收藏] [复制] [分享] [RSS]
日志

CPU卡设计实例及程序设计(十一)文件选择

已有 947 次阅读2017-2-20 23:41 |个人分类:CPU卡开发设计程序实例| 程序设计, CPU卡

/*******************************************
函数名称:SelectFile
函数功能:选择文件目录
输入参数:无
输出参数:无
描述:先根据变量选择是对卡还是ESAM操作
      选择文件,CPU卡的主目录3F 01,ESAM的主目录3F 00 
      用于选择卡或ESAM的主工作目录,主目录选择成功后才能继续对卡或ESAM操作
*******************************************/
void SelectFile(void)
{  
  unsigned char ctemp;
  unsigned char ucTransBuf[2]={0};
  if(ICSAM&icflag1)
  {
    ucTransBuf[0]=MainDir;
    ucTransBuf[1]=CardMainDir;
  }   
  else 
  { 
    ucTransBuf[0]=MainDir;
    ucTransBuf[1]=EsamMainDir;
  }    
  TxAndRxBuff[0]=0x00;
  TxAndRxBuff[1]=0xA4;
  TxAndRxBuff[2]=0x00;
  TxAndRxBuff[3]=0x00;
  TxAndRxBuff[4]=0x02;   
  cCommandLen=0x05;
  SendCommandHead_Pro(); 
  if(ErrorReadWriteBIT&iErrorRWrCard) goto SelectFileEnd;
  Delay1XETU(4);
  if(ReceINSRightBIT&cTxAndRxStatus)             
  {
    TxAndRxBuff[0]=ucTransBuf[0];
    TxAndRxBuff[1]=ucTransBuf[1];    
    cCommandLen=2;
    SendCommand(cCommandLen);
  }
  
  if(ErrorReadWriteBIT&iErrorRWrCard) goto SelectFileEnd;
  if(ICSAM&icflag1)  //从卡上取数
  {
    for(ctemp=0;ctemp<2;ctemp++)
    {         
      TxAndRxBuff[ctemp]=CardReceChar();    
      if(ErrorReadWriteBIT&iErrorRWrCard) break;
    }
    if(ErrorReadWriteBIT&iErrorRWrCard)
    {
      iErrorRWrCard=ErrorResetBIT|iErrorRWrCard;
      iErrorRWrCard=~ErrorReadWriteBIT&iErrorRWrCard;
      goto SelectFileEnd; 
    }      
  }
  else  //从ESAM取数
  {
    for(ctemp=0;ctemp<2;ctemp++)
    {      
      TxAndRxBuff[ctemp]=EsamReceChar();    
      if(ErrorReadWriteBIT&iErrorRWrCard) break;
    }
    if(ErrorReadWriteBIT&iErrorRWrCard)
    {
      iErrorRWrCard=ErrorResetBIT|iErrorRWrCard;
      iErrorRWrCard=~ErrorReadWriteBIT&iErrorRWrCard;
      goto SelectFileEnd; 
    }      
  }
  //
  if((TxAndRxBuff[0]!=RespondStateByte3)&&(TxAndRxBuff[0]!=RespondStateByte1)) 
    iErrorRWrCard=ErrorReadWriteBIT|iErrorRWrCard; 
SelectFileEnd:
  delay_ms2M(5);
}
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章