我用的是HC908GP32,CW_V3.0版本,程序内容是用GP32控制DDS芯片,用C语言写,开头部分是照北航出的参考书上写的。主程序部分自己写,用TURBO C调试过没问题。用CW make时提示limitation:code size>1024。请高手帮忙。
/************************************************************************/ /*文件名:void set_code(void) */ /*程序描述:设置控制字 */ /************************************************************************/ void set_code(void) { unsigned char a,i,j,k,m,n; float b,pre_data=0.00004; long final_data; for(i=0;i<9;i++) if(key_data==15) { n=i; break; } for(i=0;i if(key_data==11) { m=i; break; } if(i==n) m=n; if(m!=n) { key_data[m]=0; if(key_data[n-1]==10||key_data[n-1]==13||key_data[n-1]==16) { for(j=0;j { b=pow(10,m-j-1); pre_data+=key_data[j]*b; } for(k=1;m+k { b=pow(10,0-k); pre_data+=key_data[m+k]*b; b=pow(10,key_data[n-1]-10); pre_data*=b; } } else { for(j=0;j { b=pow(10,m-j-1); pre_data+=key_data[j]*b; } for(k=1;m+k { b=pow(10,0-k); pre_data=pre_data+key_data[m+k]*b; } } } else { if(key_data[n-1]==10||key_data[n-1]==13||key_data[n-1]==16) { for(j=0;j { b=pow(10,n-1-j); pre_data+=key_data[j]*b;} b=pow(10,key_data[n-1]-10); pre_data*=b;} else { for(j=0;j { b=pow(10,n-1-j); pre_data+=key_data[j]*b; } } } final_data=pre_data; for(a=0;a<32;a++) { code[a]=5; } code[32]=1; code[33]=0; code[34]=1; }
|