英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3018|回复: 0
打印 上一主题 下一主题

CCS怎样用指针访问ROM数组

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-28 17:58:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CCS 的指針 不能指向 儲存程序的 FLASH EEPROM (也許我又說錯了,去CCS問問吧)
印象中 Hi-Tech 的 PICC 的指針 可以指向 ROM
說說看你想要做什麼吧,總會有辦法用 CCS 做到的啦
剛才隨手試試指針,如下,
#include <16F877A.H> // <18F458.H>
#device  *=16        // 用 16 bit 指針,才能訪問所有的 bank
#use delay ( clock = 20000000 )
#use rs232 ( baud  = 115200, xmit=PIN_C6, rcv=PIN_C7 )
const char str_x[] = {'h','e','l','l','o',' ',0};  // 結尾要加字串結束碼'0'
      char str_y[] = {'w','o','r','l','d',0};      // 刪掉結尾的 0 試看看吧
const int8 x[3]    = {0x31,0x33,0x35};
      int8 y[]     = {0x32,0x34,0x36,0x2A,0};   
int8  i;
int8  * ptr;
int16 * ptr_16;
#byte TXREG = 0x19
#byte TXSTA = 0x98
#bit  TRMT  = TXSTA.1
void putcs( char c ) // 傳送字元,亦可傳送常數字串 !
{
   while( !TRMT ); TXREG = c;
}
void main()
{
// ptr    =     x;   // 不能指向 PROGRAM FLASH ROM 裡面的數組
// ptr    = str_x;
// ptr_16 = str_x;   
   ptr_16 = str_y;
   
   putcs(" hi ");
   puts( " man");
   puts(     x );
   puts(     y );   
   puts( str_x );
   puts( str_y );
   ptr =  y;
   ptr = &y[0];
   ptr = *y;
   y[2]= *ptr;
   
   i = x[0];
   i = x[1];  
   i = 2;
   
   y[1] = x[i];
   y[2] = *ptr;
   for(i=0;i<3;i++) y[i] = x[i];
   i=0;
   
   while ( 1 )
   {  
      printf("\r\n x[%u]= 0x%x, y[%u]= 0x%x", i, x[i], i, y[i]); i++;
      delay_ms(1000);
   }
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-5-10 05:59 , Processed in 0.057381 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表