使用Keil C调试某系统时积累的一些经验
使用Keil C调试某系统时积累的一些经验
1、在Windows2000下面,我们可以把字体设置为Courier,这样就可以显示正常。
2、当使用有片外内存的MCU(如W77E58,它有1K片外内存)的时候,肯定要设置标志位,并且编译方式要选择大模式,否则会出错。
3、当使用Keil C跟踪程序运行状态的时候,要把引起Warning的语句屏蔽,否则有可能跟踪语句的时候会出错。
4、在调用数组的时候,Keil C是首先把数组Load进内存。如果要在C中使用长数组的时候,我们可以使用code关键字,这样就实现了汇编的DB的功能,Keil C是不会把标志code的数组Load入内存的,它会直接读取Rom。
5、拉高管脚的执行速度远远比检查管脚电平的要快。当编程涉及到有关通信,时序是很重要的。
6、在等待管脚电平变化的时候,我们需要设置好超时处理,否则程序就会因为一个没有预计的错误而死锁。
7、能用C语言实现的地方,尽量不要用汇编,尤其在算法的实现,用汇编是晦涩难懂。
8、程序的几个参数数组所占篇幅很大,其中液晶背景数组最长,有四千个Byte,因而把那些初始化数组都放在另外一个C文件,在主文件使用使用关键字extern定义,这样就不会对主文件的编写造成干扰。
9、所有函数之间的相关性越低越有利于以后功能的扩展。
10、6.20版在编译带code关键字的数组时,编译通过但是单片机运行结果是错误的,改用6.14版后正常。
------------------------------------------------------------------------------------------------------------------------------------------------------
问:C51 怎样将1个子程序段定位在1个固定的地址位置?
以下2问题均要用C51解决
1。 怎样将1个子程序段定位在1个固定的地址位置?
例如将 INT BCD2HEX(INT XX)定位在1000H
2。 HOW在EEPROM 中固定的位置存放1字符串?
如在200H处放“COPYRIGHT 2001-11”
答: 函数定位与变量定位...
1、函数定位:
假如要把C源文件 tools.c 中的函数
int BIN2HEX(int xx)
{
...
}
放在CODE MEMORY的0x1000处,先编译该工程,然后打开该工程的M51文件,在
* * * C O D E M E M O R Y * * *
行下找出要定位的函数的名称,应该形如:
CODE xxxxH xxxxH UNIT
相关文档:
c# 4.0新特性一览
终于静下心来仔细听了一遍Anders Hejlsberg(Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲的“The Future of C#”(http://channel9.msdn.com/pdc2008/TL16/)。
回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入 ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. raise函数
raise函数的功能是向正在执行的程序发送一个信号,其用法为:int raise(int sig);程序实例如下:
#include <signal.h& ......
某些场合,如游戏开发,工程计算中,可能需要计算反三角函数,下面是计算反正切三角函数的c源代码实例:
atan_self(double x)
{
//atan(x)=x-x^3/3+x^5/5-x^7/7+.....(-1<x<1)
//return:[-pi/2,pi/2]
double mult,sum,xx;
sum=0;
if(x==1){
return pi/4;
}
if(x==-1){
return -pi/4;
}
((x&g ......
题目:输入三个字符串a,b和c,将a中b的第一次出现替换为c。
代码:
#include <iostream.h>
#include <string.h>
/*字符串替换,第一个参数为原串,第二个参数为要匹配的子串
第三个参数为要替换的第一个子串中包含第二个子串的部分*/
char *strReplace(char *str1,char *str2,char *str3);
void main() ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. setwritemode函数
setwritemode函数的功能是设置图形方式下画线的输出模式,其用法为:void far setwritemode(int mode);程序实例如下:
#include < ......