68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> AVR單片機內(nèi)部EEPROM應用方法

AVR單片機內(nèi)部EEPROM應用方法

關鍵字:AVR單片機 EEPROM 存儲器 作者:admin 來源:不詳 發(fā)布時間:2018-05-19  瀏覽:21

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

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

while(EECR & (1<

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

EEDR = data;

EECR |= (1

EECR |= (1<

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

while(EECR & (1<

EEAR = address; //設置地址和數(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; //設置地址寄存器

EECR |= (1<

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

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

while(EECR & (1<

EEAR = address; //設置地址寄存器

asm volatile("SBI 0x1C,0 \n\t"); //設置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有說明)。

編輯:admin  最后修改時間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

龙井市| 益阳市| 壶关县| 新津县| 芒康县| 丘北县| 株洲县| 含山县| 湘阴县| 明光市| 翼城县| 瓦房店市| 中宁县| 巧家县| 长丰县| 普格县| 宁武县| 宣武区| 巴马| 建瓯市| 自治县| 精河县| 双流县| 东丽区| 万全县| 繁昌县| 原阳县| 清远市| 黔江区| 梁平县| 巫溪县| 青川县| 甘孜县| 竹山县| 泗水县| 靖江市| 武邑县| 商洛市| 漳平市| 阳原县| 志丹县|