資源描述:
《(c語言優(yōu)秀編程風(fēng)格)-y》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、本頁關(guān)鍵詞:什么是eepromspieepromeeprom程序eeprom資料eeprom結(jié)構(gòu)eeprom讀寫eeprom的讀寫本頁詳細(xì)介紹ICC自帶EEPROM操作函數(shù)的操作方法,包括單字符讀寫,數(shù)組讀寫,結(jié)構(gòu)體讀寫。程序代碼:下載相關(guān)文件·voidmain(void)·{·unsignedchartemp1,temp2;/*定義變量*/·unsignedcharbuffer[10];/*定義數(shù)組*/·unsignedcharbuf[]="AVR與虛擬儀器";/*定義字符串*/··EEPROMwrite(0x10,'a
2、');/*單字符寫入到0x10,注意是單引號*/·temp1=EEPROMread(0x10);/*讀一個字符到temp1*/···EEPROM_WRITE(0x20,"abcdefg");/*寫字符串到0x20*/·EEPROM_READ(0x20,temp2);/*讀字符到temp2,temp2=a*/·EEPROM_READ(0x20,buffer);/*讀字符串到數(shù)組中buffer[10]=abcdefg*/··EEPROM_WRITE(0x30,buf);/*數(shù)組中的值寫到EEPROM中:0X30開始為"AVR與
3、虛擬儀器"*/··while(1)·;·}·AVR與虛擬儀器致力于提供最優(yōu)質(zhì)的AVR和labview技術(shù)服務(wù),最全的技術(shù)資料,最好的開發(fā)板方案。我們將以AVRDB-COREVer2.3Atmega16開發(fā)板為平臺,一步一步,教會大家AVR單片機(jī)編程。本站所有范例都采用ICC編寫,ICC編譯器加AVRStudio下載調(diào)試,下載器為JTAG&ISP下載編程器。你現(xiàn)在的位置:AVR與虛擬儀器>>新手入門>>AVRc語言優(yōu)秀編程風(fēng)格論壇AVRc語言優(yōu)秀編程風(fēng)格作為一個初學(xué)者如何具有良好的程序設(shè)計風(fēng)格呢?我想引用一個關(guān)于初學(xué)者請教編
4、程大師的故事讓讀者自己去領(lǐng)悟。有一位編程大師,他寫非結(jié)構(gòu)化的程序,一位初學(xué)者刻意模仿他,也寫非結(jié)構(gòu)化的程序。當(dāng)他讓大師看他的進(jìn)步時,大師批評了他的非結(jié)構(gòu)化程序:“對一位編程大師合適的東西未必對一個初學(xué)者同樣合適,在超越結(jié)構(gòu)化之前,你必須理解編程之道。”我個人認(rèn)為作為一個初學(xué)者應(yīng)該踏踏實實的打好程序設(shè)計的基礎(chǔ),不要急功近利,舍本逐末。我走過不少彎路,希望大家能和我一樣能牢記編程大師的忠告:“對編程大師合適的東西未必對一個初學(xué)者同樣合適”。本文所描述的優(yōu)秀編程風(fēng)格適合于大部分語言,文章中可能提到你不是很了解的概念,沒有關(guān)系,你
5、放心的讀下去,當(dāng)你使用AVR一個月之后,你什么都明白了。AVRc語言優(yōu)秀編程風(fēng)格文件結(jié)構(gòu)模塊化的程序應(yīng)該是有一個很好的程序結(jié)構(gòu)的。AVRC語言程序有兩種用戶文件,.c程序文件,.h頭文件,程序中編寫過程中需要在.c文件中包含.h頭文件。初學(xué)者往往出現(xiàn)重復(fù)包含或者頭文件包含錯誤的問題,我當(dāng)時也時常為這種錯誤而發(fā)愁。下面我以我寫的電機(jī)驅(qū)動例程來給大家說明一下,優(yōu)秀的編程文件結(jié)構(gòu)。這個工程中有8個文件,一個說明文件,如下圖:下載程序例子電機(jī)控制案例。我寫的成型的程序的文件個數(shù)基本上都是偶數(shù),因為每一個結(jié)構(gòu)化的函數(shù)定義.c文件都會
6、對應(yīng)一個.h文件。main.c對應(yīng)config.h。我們來看看各文件的包含關(guān)系。下面我們看看這些文件的包含關(guān)系與內(nèi)容:[推薦的文件包含順序與關(guān)系]·所有.c文件都包含了config.h文件。如:#include"config.h"·在config.h中有如下代碼:·#include"delay.h"·#include"device_init.h"#include"motor.h"·這樣做就不容易出現(xiàn)錯誤的包含關(guān)系,為了預(yù)防萬一,我們還引入了宏定義與預(yù)編譯。如下:·#ifndef_UNIT_H__·#define_UNIT_
7、H__1·//100us·externvoidDelay100us(uint8n);·//1s·externvoidDelay1s(uint16n);//n<=6,whenn==7,itis1.·//1ms·externvoidDelay1ms(uint16n);··#endif··第一次包含本文件的時候正確編譯,并且#define_UNIT_H__1,第二次包含本文件#ifndef_UNIT_H__就不再成立,跳過文件?!ゎA(yù)編譯還有更多的用途,比如可以根據(jù)不同的值編譯不同的語句,如下:·//#pragmaREGPARMS
8、·#ifCPU_TYPE==M128·#include·#endif·#ifCPU_TYPE==M64·#include·#endif·#ifCPU_TYPE==M32·#include·#endif·#ifCPU_TYPE==M16·#in