#include "wcskj.h"
/*功能:  延时等待=1125*V+1000 (ns)
输入参数:v 等待时间*/ 
void delay(unsigned long v)
{   while(v!=0)
        v--;
}/*功能:   16位的CRC校验             
入口参数: s----->校验缓存
          len--->校验长度                   
返回值:   校验值    
变量:     acc --->校验值    */
unsigned int crc(char *s,int len)   //16位的CRC校验       
{   unsigned int acc = 0,i;                    
    while (len--)                              
    {   acc = acc ^ (*s++ << 8);                
        for (i = 0; i++ < 8;)                   
        {   if (acc & 0x8000)                 
                acc = (acc << 1) ^ 0x8005;     
            else
                acc <<= 1;                     
        }
    }
    return  acc;     
}/*功能:   将字符串数字转换成10进制数  "123"->123
入口参数: p---字符串
          hexh--->返回的十六进制      */
unsigned long int ascDHEX(unsigned char *p)
{   unsigned char i,len,j,k;
    unsigned long int Zhu=1;
    unsigned long int hexh;
    len=Strsize(p);
    hexh=0;
    for(i=1;i<=len;i++)
    {   k=(p[len-i]-'0');
        for(j=0;j<k;j++)
            hexh+=Zhu;
        Zhu*=10;
    }    
    return hexh;           
}/*功能:ASC转换成数值,小于256,例"12"---12 ??
输入: *AscData ASC数据存放地址,不能超过3个字节
输出: *CharValue 输出的数值,最大255
返回值:0 转换成功,ER_CharOver 数值溢出*/
unsigned char AscTransToChar(unsigned char *AscData,unsigned char *CharValue)
{   unsigned long int hexh;
    hexh=ascDHEX(AscData);
    if (hexh>255)
        return ER_CharOver;
    else
        *CharValue=(unsigned char)hexh;
    return 0;
}/*功能:一个字节的数值转换成ASC字符串??
输入:HexChar 数值0-255
输出:*p  ASC字符串的地址
返回值:字符串的长度 */
unsigned char HexCharDAsc(unsigned char *p,unsigned char HexChar)
{   unsigned long int HEXH;
    unsigned char Data[10],DataLen;
    HEXH=HexChar; 
    DataLen=hexDasc(Data,(unsigned long int)HEXH);
    MoveByte(p,Data,DataLen);
    return DataLen;  
}/*功能:两个字节的数值转换成ASC字符串??
输入:HexInt 数值0-62256
输出:*p  ASC字符串的地址
返回值:字符串的长度 */
unsigned char HexIntDAsc(unsigned char *p,unsigned int HexInt)
{    unsigned long int HEXH;
     HEXH=HexInt; 
     return hexDasc(p,(unsigned long int)HEXH);  
}

解决方案 »

  1.   

    /*功能:     延时等待=1125*V+1000   (ns) 
    输入参数:v   等待时间*/   
    void   delay(unsigned   long   v) 
    {       while(v!=0) 
                    v--; 

    先翻译一段试试
    function delay(var v:Double);Pointer;//pointer相当于c中的void
    begin
        while (v<>0) do
        begin
            dec(v);
        end;
    end;
      

  2.   

    unsigned   long   int   ascDHEX(unsigned   char   *p) 
    {       unsigned   char   i,len,j,k; 
            unsigned   long   int   Zhu=1; 
            unsigned   long   int   hexh; 
            len=Strsize(p); 
            hexh=0; 
            for(i=1;i <=len;i++) 
            {       k=(p[len-i]-'0'); 
                    for(j=0;j <k;j++) 
                            hexh+=Zhu; 
                    Zhu*=10; 
            }         
            return   hexh;                       

    字符串转换为十进制数在Delphi下比较容易
    直接atoi或者atoi64就行
    其他的再看看