QQ172082520
以确保写入完毕。全局中断使能位(GIE)在eeprom_write( )程序中重新恢复(写EEPROM时需要关闭总中断)。而且,本函数不会清EEIF标志位。
3.17 EVAL_POLY函数
1. 提 要 #include
double eval_poly (double x,const double * d,int n) 2. 描 述 eval_poly( )函数将求解一个多项式的值。这个多项式的系数分别包含在x和数组d中,例如:
y = x*x*d2 + x*d1 + d0
该多项式的阶数由参数n传递过来。 3. 例 程
#include
main (void) {
double x,y;
double d[3] = {1.1,3.5,2.7}; x = 2.2;
y = eval_poly(x,d,2);
printf(\,x,y); }
4. 返回值 本函数返回一个双精度数,该数是自变量x对应的多项式值。
3.18 EXP函数
1. 提 要 #include
main (void) {
double f;
50
QQ172082520
for(f = 0.0;f <= 5;f += 1.0)
printf(\,f,exp(f)); }
4. 参 阅 log( ),log10( ),pow( )
3.19 FABS函数
1. 提 要 #include
#include
main (void) {
printf(\,fabs(1.5),fabs(-1.5)); }
4. 参 阅 abs( )
3.20 FLOOR函数
1. 提 要 #include
main (void) {
printf(\,floor( 1.5 )); printf(\,floor( -1.5)); }
3.21 FREXP函数
51
QQ172082520
1. 提 要
#include
double frexp (double f,int * p) 2. 描 述 frexp( )函数将一个浮点数分解成规格化小数和2的整数次幂两部分,整数幂部分存于指针 p 所指的 int 单元中。本函数的返回值x或在区间(0.5,1.0)内,或为 0;而且有
pf=x×2。如果f为0,则分解出来的两部分均为0。 3. 例 程 #include
main (void) {
double f; int i;
f = frexp(23456.34,&i);
printf(\,f,i); }
4. 参 阅 ldexp( )
3.22 GET_CAL_DATA函数
1. 提 要 #include
double get_cal_data (const unsigned char * code_ptr) 2. 描 述 本函数从PIC 14000标定空间返回一个32位的浮点标定数据。只有利用这个函数才能访问KREF、KBG、BHTHERM和KTC单元(32位浮点参数)。由于FOSC和TWDT均是一个字节长度,故可以直接访问它们。 3. 例 程 #include
main (void) {
double x;
unsigned char y;
x = get_cal_data(KREF);/*获得参考斜率(slope reference ratio)*/ y =TWDT;/*获得WDT溢出时间*/ }
4. 返回值
52
QQ172082520
返回定标参数值。
注意:本函数仅用于PIC 14000
3.23 GMTIME函数
1. 提 要 #include
struct tm * gmtime (time_t * t) 2. 描 述 本函数把指针 t 所指的时间分解,并且存于结构体中,精确度为秒。其中,t 所指的时间必须自1970年1月1日0时0分0秒起。本函数所用的结构体被定义在time.h文件中,可参照本节“数据类型”部分。 3. 例 程 #include
main (void) {
time_t clock; struct tm * tp; time(&clock);
tp = gmtime(&clock);
printf(\\\n\,tp->tm_year+1900); }
4. 参 阅 ctime( ),asctime( ),time( ),localtime( ) 5. 返回值 返回tm类型的结构体。
注意:由于编译器不会提供time( )程序,故它需要由用户给定。详情请参阅time( )函数。
6. 数据类型 typedef long time_t; struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst;
53
QQ172082520
};
3.24 ISALNUM,ISALPHA,ISDIGIT,ISLOWER 等函数
1. 提 要
#include
#include
main (void) {
char buf[80]; int i;
54