久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

AVR GCC常用頭文件

 博雅同窗 2012-08-10

一,、庫(kù)函數(shù)頭文件介紹
庫(kù)函數(shù)按不同的類別聲明在不同的頭文件中,以字母為序分別介紹頭文件: 
ctype.h:字符類型函數(shù) 
eeprom.h:EEPROM 訪問(wèn)函數(shù) 
errno.h:錯(cuò)誤處理函數(shù) 
ina90.h:與IAR C兼容的頭文件 
interrupt.h:中斷處理函數(shù) 
inttypes.h:定義不同的數(shù)據(jù)類型 
io.h:包含寄存器定義和其它頭文件 
math.h:數(shù)學(xué)函數(shù) 
pgmspace.h:與IAR C兼容的頭文件,,內(nèi)含對(duì)Flash存儲(chǔ)器中數(shù)據(jù)讀寫(xiě)函數(shù) 
progmem.h:與pgmspace.h 頭文件相同 
setjmp.h:長(zhǎng)跳轉(zhuǎn)函數(shù) 
sig-avr.h:與signal.h相同,,舊版頭文件,建議不使用 
signal.h:信號(hào)處理函數(shù) 
stdlib.h:標(biāo)準(zhǔn)庫(kù)函數(shù) 
stdio.h:標(biāo)準(zhǔn)輸入輸出函數(shù) 
string.h:字符串操作函數(shù) 
timer.h:定時(shí)器控制函數(shù) 
twi.h:針對(duì)ATmega163的I2C函數(shù) 
wdt.h:看門(mén)狗定時(shí)器控制函數(shù)

注:AVRGCC在使用前應(yīng)包含頭文件,,例如#include <avr/signal.h>,,這里要包含頭文件所在的文件夾avr,用戶自己的頭文件可以先復(fù)制到avr文件夾下,。

二,、字符類型處理函數(shù)庫(kù)
int isalnum(int c):如果c為字母或數(shù)字則返回1,否則返回0,。 
int isalpha(int c):如果c為字母則返回1,,否則返回0。 
int isascii(int c):如果c為ASCII碼則返回1,,否則返回0,。 
int isblank(int c):如果c為空格字符則返回1,否則返回0,,可以是space鍵或tab鍵輸入的空格字符,。 
int iscntrl(int c):如果c為控制字符則返回1,否則返回0,。 
int isdigit(int c):如果c為數(shù)字則返回1,,否則返回0。 
int isgraph(int c):如果c為可打印字符(不包括空格)則返回1,,否則返回0,。 
int islower(int c):如果c為小寫(xiě)字母則返回1,否則返回0,。 
int isprint(int c):如果c為可打印字符(包括空格)則返回1,,否則返回0。 
int ispunct(int c):如果c為標(biāo)點(diǎn)符號(hào)則返回1,,否則返回0,。 
int isspace(int c):如果c為空格,、' '、'\f',、'\r',、'\t'、'v'之一則返回1,,否則返回0,。 
int isupper(int c):如果c為大寫(xiě)字母則返回1,否則返回0,。 
int isxdigit(int c):如果c為16進(jìn)制數(shù)則返回1,,否則返回0。 
int toascii(int c):將c轉(zhuǎn)換為7位ASCII字符,,成功返回1,,否則返回0。 
int tolower(int c):將c轉(zhuǎn)換為小寫(xiě)字母,,成功返回1,,否則返回0。 
int toupper(int c):將c轉(zhuǎn)換為大寫(xiě)字母,,成功返回1,,否則返回0。


        三,、AVRGCC內(nèi)置EEPROM訪問(wèn)函數(shù)庫(kù) 
void eeprom_read_block(void *buf, unsigned int addr, size_t n):從EEPROM的addr地址開(kāi)始,,讀取n個(gè)字節(jié)到buf。 
int eeprom_is_ready():宏定義,,EEPROM準(zhǔn)備好(EECR =0)返回非0,,否則返回0。 
unsigned char eeprom_read_byte (unsigned int addr):從EEPROM讀取addr地址處的字節(jié)數(shù)據(jù),,在以前的版本中為unsigned char eeprom_rb(unsigned int addr),,新版也兼容舊版本的函數(shù)。 
unsigned int eeprom_read_word(unsigned int addr):從EEPROM讀取一個(gè)整數(shù),,低字節(jié)地址addr,,高字節(jié)地址(addr+1) ,在以前的版本中為unsigned int eeprom_rw(unsigned int addr),,新版本也兼容舊版本的函數(shù),。 
void eeprom_write_byte (unsigned int addr, unsigned char val):向EEPROM的addr地址處寫(xiě)入字節(jié)數(shù)據(jù)val,在以前的版本中為void eeprom_wb(unsigned int addr, unsigned char val),,新版本也兼容舊版本的函數(shù)。 
_EEPUT(addr, val) eeprom_wb(addr, val):與IAR C的兼容函數(shù) 
_EEGET(var, addr) (var) = eeprom_rb(addr):與IAR C的兼容函數(shù)


       四,、AVRGCC定義不同類型的數(shù)據(jù) 
在使用前應(yīng)包含頭文件#include <inttypes.h>,,在本頭文件中重新進(jìn)行數(shù)據(jù)類型定義,,將GNU的數(shù)據(jù)類型改為符合ANSI C的規(guī)范。 
typedef signed char int8_t:8位有符號(hào)數(shù) 
typedef unsigned char uint8_t:8位無(wú)符號(hào)數(shù) 
typedef int int16_t:16位有符號(hào)數(shù) 
typedef unsigned int uint16_t:16位無(wú)符號(hào)數(shù) 
typedef long int32_t:32位有符號(hào)數(shù) 
typedef unsigned long uint32_t:32位無(wú)符號(hào)數(shù) 
typedef long long int64_t:64位有符號(hào)數(shù) 
typedef unsigned long long uint64_t:64位無(wú)符號(hào)數(shù) 
Typedef int16_t intptr_t:指針 
Typedef uint16_t uintptr_t:指針 
注意:在使用“-mint8”選項(xiàng)時(shí),,編譯器將把int類型定義為8位


       五,、AVRGCC數(shù)學(xué)函數(shù)庫(kù) 
在使用前應(yīng)包含頭文件#include <math.h>,而且math.h數(shù)學(xué)函數(shù)庫(kù)中定義的函數(shù)需要libm.a庫(kù)文件支持,,因此在在連接時(shí)增加-lm參數(shù),,或者在在makefile的LDFLAGS=后面追加-lm參數(shù)。 
M_PI:常數(shù),,為3.141592653589793238462643 
M_SQRT2:常數(shù),,為1.4142135623730950488016887 
double cos( double x ):返回以弧度形式表示x的余弦值 
double fabs( double x ):返回x的絕對(duì)值。 
double fmod( double x, double y ):返回x/y的余數(shù) 
double modf( double x, double *iptr ):把浮點(diǎn)數(shù)分解成整數(shù)部分和小數(shù)部分,,整數(shù)部分存放到pint指向的變量,,小數(shù)部分應(yīng)當(dāng)大于或等于0而小于1,并且作為函數(shù)返回值返回,。 
double sin( double x ):返回以弧度形式表示x的正弦值,。 
double sqrt( double x ):返回x的平方根 
double tan( double x ):返回以弧度形式表示x的正切值。 
double floor( double x ):返回不大于x的最大整數(shù),。 
double ceil( doublce x ):返回不小于x的最小整數(shù),。 
double frexp( double x, int *exp ):把浮點(diǎn)數(shù)x分解成數(shù)字部分y(尾數(shù))和以2為底的指數(shù)n兩個(gè)部分,即x=y*2n,,y的范圍為0.5≤y<1,,y值被函數(shù)返回,而n值存放在pexp指向的變量中 
double ldexp( double x, int exp ):返回x*2exp,。 
double exp( double x ):返回以e為底x的冪,,即ex 
double cosh( double x ):以弧度形式返回x的雙曲余弦值 
double sinh( double x ):以弧度形式返回x的雙曲正弦值 
double tanh( double x ):以弧度形式返回x的雙曲正切值 
double acos( double x ):以弧度形式返回x的余弦值 
double asin( double x ):以弧度形式返回x的正弦值 
double atan( double x ):以弧度形式返回x的余弦值 
double atan2( double x, double y ):返回y/x的反正切,其范圍在-π~+π之間 
double log( double x ):返回x的自然對(duì)數(shù),。 
double log10( double x ):返回以10為底的對(duì)數(shù) 
double pow( double x, double y ):返回xy值 
int isnan(double x):如果x為非負(fù)數(shù)(NAN,,值為0xffffffff),返回1,,否則返回0 
int isnaf(double x):如果x的值為正溢出(+INF,,值大于0x7f800000)和負(fù)溢出(-INF,值小于0xff800000)則返回0,,否則返回1 
double strtod( const char *s, char **endptr ):將ASCII字符串轉(zhuǎn)換為double數(shù) 
double square( double x ):返回x的平方根 
double inverse( double x ):返回1/x


       六,、AVRGCC字符串操作函數(shù)庫(kù) 
在使用前應(yīng)包含頭文件#include <string.h>
void * memccpy (void *dest,const void *src,int val,size_t len):從scr復(fù)制不超過(guò)len個(gè)字節(jié)到dest,在復(fù)制的過(guò)程中如果存在val,,則停止復(fù)制并返回,,如果不存在val,則復(fù)制len個(gè)字符,。 
void * memchr(const void *src,int val,size_t len):在字符串src中搜索len個(gè)字節(jié)長(zhǎng)度以尋找與val相同的字符,,如果成功返回匹配字符的地址指針,,否則返回NULL 
int memcmp(const void *s1,const void *s2,size_t len):對(duì)字符串s1和s2的前l(fā)en個(gè)字符進(jìn)行比較,如果相同返回0,,如果s1中字符串大于s2中字符串,,則返回大于0的值,如果s1中字符串小于s2中字符串,,則返回小于0的值,。 
void * memcpy(void *dest,const void *src,size_t len):拷貝src所指的對(duì)象中拷貝len個(gè)字符至dest所指的對(duì)象中,函數(shù)返回dest的值,。,。 
void * memmove(void *dest,const void *src,size_t len):拷貝src中l(wèi)en個(gè)字符至dest,其它與memcpy基本相同,,但拷貝區(qū)可以重迭,,在拷貝過(guò)程中使用了個(gè)長(zhǎng)度為len的臨時(shí)數(shù)組。 
void * memset(void *dest,int val,size_t len):在dest中從開(kāi)始位置填充len個(gè)字節(jié)的val,,它返回dest 
int strcasecmp(const char *s1,const char *s2):比較兩個(gè)字符串,,如果相同返回0,如果s1中字符串大于s2中字符串,,則返回大于0的值,,如果s1中字符串小于s2中字符串,則返回小于0的值,。 
char * strcat(char *dest,const char *src):將src所指向的字符串(包括終止字符串的空字符)復(fù)制到dest所指向的數(shù)組的末尾,,并且src所向指向的字符串的初始字符將覆蓋dest末尾的空字符,函數(shù)返回dest的值,。 
char *strchr(const char *src,int val):在字符串src中搜索最后出現(xiàn)的val,,并返回它的位置,終止字符串的空字會(huì)也作為串的一部分,,函數(shù)返回指src中第一個(gè)val的位置,,如果沒(méi)有出現(xiàn)與val相同的字符,則返回一個(gè)空指針,。 
int strcmp(const char *s1,const char *s2):比較兩個(gè)字符串,,如果相同返回0,如果s1中字符串大于s2中字符串,,則返回大于0的值,,如果s1中字符串小于s2中字符串,則返回小于0的值,。 
char * strcpy(char *dest,const char *src):將src所指向的字符串(包括終止字符串的空字符)復(fù)制到dest所指向的數(shù)組的末尾,,函數(shù)返回dest的值。 
size_t strlcat(char *dest,const char *src,size_t size):基本和strcat函數(shù)相同,,但只復(fù)制前size個(gè)字符,,如果size大于src所指向字符串的長(zhǎng)度,,則將src復(fù)制到dest后就返回,。 
size_t strlcpy(char *dest,const char *src,size_t size):基本和strcpy函數(shù)相同,,但只復(fù)制前size個(gè)字符,如果size大于src所指向字符串的長(zhǎng)度,,則將src復(fù)制到dest后就返回,。 
size_t strlen(const char *src):返回字符串src的長(zhǎng)度,不包括結(jié)束NULL字符 
char * strlwr(char *string):將src字符串中的大寫(xiě)字母轉(zhuǎn)換成相應(yīng)的小寫(xiě)字母,,其它字符保持不變 
int strncasecmp(const char *s1,const char *s2,size_t len):基本和strcasecmp函數(shù)相同 
char * strncat(char *dest,const char *src,size_t len):函數(shù)strncat將src所指向的字符串(包括終止字符和空字符)復(fù)制到dest所指向的數(shù)組的末尾,,最多追回len個(gè)字符,空字符及空字符后的字符不予復(fù)制,。src的初始字符覆蓋dest末尾的空字符,。結(jié)果字符串的末尾通常追加一個(gè)空字符,函數(shù)返回dest的值,。 
int strncmp(const char *s1,const char *s2,size_t len):函數(shù)比較s1和s2所指向的字符串,,如果相同返回0,如果s1中字符串大于s2中字符串,,則返回大于0的值,,如果s1中字符串小于s2中字符串,則返回小于0的值,。 
char *strncpy(char *dest,const char *src,size_t len):基本和strlcpy函數(shù)相同 
size_t strnlen(const char *src,size_t len):基本和strlen函數(shù)相同,,如果src小于len,則返回src的長(zhǎng)度(不包含結(jié)束NULL字符),,否則返回len 
char * strrchr(const char *src,int val):基本和strchr函數(shù)相同,,但返回的是最后一次與val匹配字符的位置 
char * strrev(char *string):將字符串string翻轉(zhuǎn),即第一個(gè)字符變成最后一個(gè),,最后一個(gè)變成第一個(gè),。 
char * strstr(const char *s1,const char *s2):在字符串s1中搜索字符串s2,并返回找到的第一個(gè)相匹配的針,,否則返回NULL 
char * strupr(char *string):將src字符串中的小寫(xiě)字母轉(zhuǎn)換成相應(yīng)的大寫(xiě)字母,,其它字符保持不變


七、定時(shí)器控制函數(shù)timer.h

文件包含為:#include <avr/timer.h>
timer.h文件定義定時(shí)/計(jì)數(shù)器使用的一個(gè)枚舉類型: 
enum 

STOP = 0, 
CK = 1, 
CK8 = 2, 
CK64 = 3, 
CK256 = 4, 
CK1024 = 5, 
T0_FALLING_EDGE = 6, 
T0_RISING_EDGE = 7 
}; 
枚舉類型定義定時(shí)/計(jì)數(shù)器的控制寄存器的時(shí)鐘源(分頻系數(shù)) 
void timer0_source( unsigned int src):將src賦值給寄存器TCCR0 
void timer0_stop();:通過(guò)對(duì)寄存器TCNT0清零來(lái)停止定時(shí)器0 
void timer0_start();:通過(guò)對(duì)寄存器TCNT0寫(xiě)入1來(lái)啟動(dòng)定時(shí)器0

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多