日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]AVR單片機內(nèi)部集成了EEPROM,但是在GCC寫編寫EEPROM應(yīng)用程序的時候,經(jīng)常會出現(xiàn)讀寫EEPROM時程序出錯,或重啟等不正常現(xiàn)象。在軟件仿真時也許結(jié)果是正確的,但是在片上運行的時候就不正常。困擾很久,終于發(fā)現(xiàn)原因在

AVR單片機內(nèi)部集成了EEPROM,但是在GCC寫編寫EEPROM應(yīng)用程序的時候,經(jīng)常會出現(xiàn)讀寫EEPROM時程序出錯,或重啟等不正?,F(xiàn)象。在軟件仿真時也許結(jié)果是正確的,但是在片上運行的時候就不正常。困擾很久,終于發(fā)現(xiàn)原因在于編譯器,已經(jīng)我們對EEPROM操作說明的理解不正確或不仔細。

操作EEPROM對時序的要求較高。更加Datasheet里的寫操作范例程序:

while(EECR & (1<

EEAR = address; //設(shè)置地址和數(shù)據(jù)寄存器

EEDR = data;

EECR |= (1

EECR |= (1<

以上代碼在GCC中的編譯結(jié)果,發(fā)現(xiàn) EECR |= (1<

while(EECR & (1<

EEAR = address; //設(shè)置地址和數(shù)據(jù)寄存器

EEDR = data;

asm volatile("SBI 0x1C,2 \n\t");

asm volatile("SBI 0x1C,1 \n\t");

對于讀操作,發(fā)現(xiàn)采用Datasheet范例程序:

while(EECR & (1<

EEAR = address; //設(shè)置地址寄存器

EECR |= (1<

return EEDR; //自數(shù)據(jù)寄存器返回數(shù)據(jù)

進行單次操作似乎正常,但是連續(xù)操作可能導(dǎo)致程序個別運行不正常,現(xiàn)象象重啟,但通過邏輯分析儀跟蹤設(shè)置啟動時序情況看來,又不太象,不知什么原因。采用一下程序段則可以正常運行:

while(EECR & (1<

EEAR = address; //設(shè)置地址寄存器

asm volatile("SBI 0x1C,0 \n\t"); //設(shè)置EERE 以啟動讀操作

data = EEDR; //自數(shù)據(jù)寄存器返回數(shù)據(jù)

asm volatile("nop \n\t");

asm volatile("nop \n\t");

asm volatile("nop \n\t");

asm volatile("nop \n\t");

注意,讀操作后要空4個系統(tǒng)周期后才可執(zhí)行下個語句(Datasheet有說明)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

控制寄存器(Control Register)是中央處理器(CPU)中用于管理系統(tǒng)級操作的特殊寄存器,它為操作系統(tǒng)和硬件提供對處理器行為的精細控制。本文從計算機體系結(jié)構(gòu)角度系統(tǒng)闡述控制寄存器的設(shè)計原理、功能分類、操作機制...

關(guān)鍵字: 寄存器 處理器

在嵌入式系統(tǒng)開發(fā)中,硬件抽象層(Hardware Abstraction Layer,HAL)起著至關(guān)重要的作用。它為上層軟件提供了統(tǒng)一的硬件訪問接口,隱藏了底層硬件的細節(jié),使得軟件具有更好的可移植性和可維護性。C++作...

關(guān)鍵字: 嵌入式C++ HAL 寄存器 封裝

采用51單片機最小開發(fā)板,由8位自制獨立按鍵控制。單片機芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點陣屏模塊由MAX7219驅(qū)動,MAX7219包含一個自動掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...

關(guān)鍵字: 51單片機 MAX7219 寄存器

電源管理集成電路(PMIC)有益于簡化最終應(yīng)用并縮小其尺寸,也因此備受青睞。然而,當(dāng)默認啟動時序和輸出電壓與應(yīng)用要求不符時,就需要定制上電設(shè)置。大多數(shù)情況下,電路沒有可以存儲這些設(shè)置的非易失性存儲器(NVM)。對此,低功...

關(guān)鍵字: 電源管理 集成電路 寄存器

我從Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中創(chuàng)建了一個項目來讓它工作,你可以在我的上一個項目帖子中閱讀,我在QDSP-6061的5位數(shù)上顯示滾動文本,上面寫著“Hell...

關(guān)鍵字: 寄存器 AXI4 QDSP-6061 RTL模塊

在現(xiàn)代電子設(shè)備中,電可擦可編程只讀存儲器(EEPROM)憑借其獨特的存儲特性,被廣泛應(yīng)用于各類需要非易失性數(shù)據(jù)存儲的場景。從智能電表、工業(yè)控制系統(tǒng)到消費電子產(chǎn)品,EEPROM 承擔(dān)著存儲關(guān)鍵配置信息、校準數(shù)據(jù)以及用戶個性...

關(guān)鍵字: 只讀存儲器 數(shù)據(jù)存儲 EEPROM

在單片機系統(tǒng)的設(shè)計中,復(fù)位電路是確保單片機正常工作的關(guān)鍵組成部分。它能夠在系統(tǒng)啟動時將單片機的內(nèi)部寄存器和狀態(tài)設(shè)置為初始值,保證單片機從一個確定的狀態(tài)開始運行。與門芯片作為一種常見的數(shù)字邏輯芯片,有時會被應(yīng)用于單片機復(fù)位...

關(guān)鍵字: 復(fù)位電路 寄存器 單片機
關(guān)閉