|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請問:在winavr中如何把一段數(shù)據(jù)定義到程序flash中呢 |
| 作者:toonaive 欄目:單片機 |
在keil中可以簡單的寫成 uchar code abc[3]={1,2,3}; 那在winavr中如何實現(xiàn)呢 |
| 2樓: | >>參與討論 |
| 作者: lrzxc 于 2005/12/8 14:55:00 發(fā)布:
借用hotpower的 #define code PROGMEM //同__FLASH__,變量定義在FLASH中,相當于Keil C51的code |
|
| 3樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/12/8 15:50:00 發(fā)布:
avr-libc文件對你會有很大的幫助 可以好好看看 |
|
| 4樓: | >>參與討論 |
| 作者: lvgaopan 于 2005/12/8 16:14:00 發(fā)布:
給個實例你看看 unsigned int __attribute__((progmem)) temp_data[]; |
|
| 5樓: | >>參與討論 |
| 作者: toonaive 于 2005/12/8 16:52:00 發(fā)布:
謝謝各位,我看了avr-libc文件,寫了如下測試代碼,但是有警告 警告是:rom.c:24: warning: passing arg 1 of `romTEST' discards qualifiers from pointer target type #include <avr/io.h> #include <avr/pgmspace.h> //操作ROM中的數(shù)據(jù) #define uCHAR unsigned CHAR const uCHAR TEST[] PROGMEM = { 1,2,3,4 }; uCHAR romTEST(uCHAR tt[]) { uCHAR j; for(j=0;j<4;j++) { tt[j] = tt[j]+j; } return tt[3]; } int main(void) { uCHAR tmp; tmp = romTEST(TEST); while(1) { ; } return 0; } * - 本貼最后修改時間:2005-12-8 16:52:55 修改者:toonaive |
|
| 6樓: | >>參與討論 |
| 作者: kanprin 于 2005/12/8 17:30:00 發(fā)布:
tmp = romTEST(TEST); 改為tmp = romTEST((uchar *)TEST);然后就OK了。 |
|
| 7樓: | >>參與討論 |
| 作者: toonaive 于 2005/12/8 17:35:00 發(fā)布:
非常感謝樓上,確實OK了 |
|
| 8樓: | >>參與討論 |
| 作者: hotpower 于 2005/12/12 23:38:00 發(fā)布:
const CHAR TEST[] PROGMEM就不用強行轉(zhuǎn)換了 #include <avr/io.h> #include <avr/pgmspace.h> //操作ROM中的數(shù)據(jù) #define uCHAR unsigned CHAR const CHAR TEST[] PROGMEM = { 1,2,3,4 }; CHAR romTEST(CHAR tt[]) { uCHAR j; for(j=0;j<4;j++) { tt[j] = tt[j]+j; } return tt[3]; } int main(void) { CHAR tmp; tmp = romTEST(TEST); while(1) { ; } return 0; } |
|
| 9樓: | >>參與討論 |
| 作者: javie 于 2005/12/13 9:25:00 發(fā)布:
hotpower確實比較牛叉 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |