久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 求助:avr編程 WinAVR程序移植到iar for avr 出現錯誤 [打印本頁]

作者: by64214    時間: 2021-3-21 11:46
標題: 求助:avr編程 WinAVR程序移植到iar for avr 出現錯誤
求助:avr編程  WinAVR程序移植到iar for avr 出現錯誤
   WinAVR  pgmspace.h 頭文件  函數[url=]表情[/url]
        #definepgm_read_byte(address_short)   pgm_read_byte_near(address_short)
  iar for avr  pgmspace.h 頭文件  函數   沒有pgm_read_byte函數  
  1. /* PGM_P points into program address space */ PGM_P指向程序地址空間
  2. #ifdef __HAS_ELPM__
  3. #define PGM_P      const char __farflash *
  4. #define PGM_VOID_P const void __farflash *
  5. #else
  6. #define PGM_P      const char __flash *
  7. #define PGM_VOID_P const void __flash *
  8. #endif /* __HAS_ELPM__ */

  9. #define __PRINTFPR_P _Pragma("__printf_args")                             \
  10.   _Pragma("library_default_requirements _formatted_write_P = unknown")
  11. #define __SCANFPR_P  _Pragma("__scanf_args")                              \
  12.   _Pragma("library_default_requirements _formatted_read_P = unknown")

  13. /* Language extensions are necessary to cope with multiple address spaces */
  14. 必須使用語言擴展才能應對多個地址空間
  15. #pragma language=save
  16. #pragma language=extended
  17. __PRINTFPR_P int     printf_P(PGM_P __format,...);
  18. __SCANFPR_P  int     scanf_P(PGM_P __format,...);
  19. __PRINTFPR_P int     sprintf_P(char *__s,PGM_P __format,...);
  20. __SCANFPR_P  int     sscanf_P(const char *__s, PGM_P __format,...);

  21. int     puts_P(PGM_P __s);
  22. PGM_P   strerror_P(int errnum);
  23. size_t  strlen_P(PGM_P s);
  24. __x_z int memcmp_P(const void *, PGM_VOID_P, size_t);
  25. __x_z void *memcpy_P(void *, PGM_VOID_P, size_t);
  26. __x_z char *strcat_P(char *, PGM_P);
  27. __x_z int strcmp_P(const char *, PGM_P);
  28. __x_z char *strcpy_P(char *, PGM_P);
  29. __x_z char *strncat_P(char *, PGM_P, size_t);
  30. __x_z int strncmp_P(const char *, PGM_P, size_t);
  31. __x_z char *strncpy_P(char *, PGM_P, size_t);

  32. __x_z int memcmp_G(const void *, const void __generic *, size_t);
  33. __x_z void *memcpy_G(void *, const void __generic *, size_t);
  34. __x_z char *strcat_G(char *, const char __generic *);
  35. __x_z int strcmp_G(const char *, const char __generic *);
  36. __x_z char *strcpy_G(char *, const char __generic *);
  37. __z size_t strlen_G(const char __generic *);
  38. __x_z char *strncat_G(char *, const char __generic *, size_t);
  39. __x_z int strncmp_G(const char *, const char __generic *, size_t);
  40. __x_z char *strncpy_G(char *, const char __generic *, size_t);
  41.       int puts_G(const char __generic *);
復制代碼

現在
WinAVR程序   移植到iar for avr  pgm_read_byte 出現錯誤   請求指導  下面程序程序  應該怎么改?
  1. void Common_Show(INT8U P,INT8U L,INT8U W,char *r)
  2. {
  3.     INT8U i;
  4.     //顯示在左半屏或左右半屏
  5.     if(L < 64)
  6.     {
  7.         CS1_1(); CS2_0();
  8.         LCD_Write_Command(LCD_PAGE+P);
  9.         LCD_Write_Command(LCD_COL+L);
  10.         //全部顯示在左半屏
  11.         if(L + W < 64)
  12.         {
  13.             for(i=0; i<W; i++) LCD_Write_Data(<b>pgm_read_byte</b>(r+i));
  14.         }
  15.         //如果越界則跨越左右半屏顯示
  16.         else
  17.         {
  18.             //左半屏顯示
  19.             for(i=0; i<64-L; i++) LCD_Write_Data(<b>pgm_read_byte</b>(r+i));
  20.             //右半屏顯示
  21.             CS1_0(); CS2_1();
  22.             LCD_Write_Command(LCD_PAGE+P);
  23.             LCD_Write_Command(LCD_COL);
  24.             for(i=64-L; i<W; i++) LCD_Write_Data(<b>pgm_read_byte</b>(r+i));
  25.         }
  26.     }
  27.     //全部顯示在右半屏
  28.     else
  29.     {
  30.         CS1_0(); CS2_1();
  31.         LCD_Write_Command(LCD_PAGE+P);
  32.         LCD_Write_Command(LCD_COL+L-64);
  33.         for(i=0; i<W; i++) LCD_Write_Data(<b>pgm_read_byte</b>(r+i));
  34.     }
  35. }
復制代碼




作者: KongQuan    時間: 2021-3-21 13:23
試試自己定義替換
#definepgm_read_byte(address_short)   *(const char __flash * ( address_short))
作者: by64214    時間: 2021-3-21 14:59
謝謝指導!
#define pgm_read_byte(address_short)   *(const char __flash * ( address_short))
   編譯  出現 Error[Pe018]: expected a ")"   Error[Pe029]: expected an expression





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩视频一区二区 | 日韩视频a| 人人人艹 | 91香蕉| 伊人久久伊人 | 一区二区精品在线 | 免费播放一级片 | 久久久久久成人 | 天天操天天干天天曰 | 美女黄色在线观看 | 久久久久久久电影 | 成人精品一区二区三区 | 91超碰在线观看 | 国产精品自拍啪啪 | av在线一区二区三区 | 中文天堂在线观看 | 国产激情网 | 国产色视频网站 | 国产一区二区三区免费 | 亚洲欧美视频 | 毛片在线看看 | 天天操网 | 欧美乱大交xxxxx另类电影 | 日本亚洲欧美 | 成人精品国产 | 亚洲精品乱码久久久久久9色 | 激情毛片| 日日干夜夜操天天操 | 污视频免费在线观看 | 天堂在线免费视频 | 国产一二三区在线 | 成人免费视频观看 | 亚洲人成人一区二区在线观看 | 国产精品高潮呻吟久久aⅴ码 | 精品一区二区三 | 日韩成人av在线播放 | 国产精品婷婷 | 男人的天堂在线视频 | 精品久久久久久亚洲精品 | 精品久久国产 | 亚洲精品一区中文字幕乱码 |