在应广单片机的mini-c中,数组功能弱化,数组的下标不能是变量;比如array[i++]=0;是编译不通过的,如果要实现数组数据填充和数据拷贝,必须一个一个填充吗?不,那使用指针了.mini-c中,定义一个16bit的数就可以当成指针用.不多说,上代码

1.数组的连续寻址比如数据填充和拷贝,可以用指针+循环替换;

2.如果数组的下标是一个变量,那就必须用指针才能实现了;

3.如果数组的下标是一个固定的数,用数组原有操作方法就OK了;

#include    "extern.h"
/*************常用宏定义*******************/
#define     HIGH    1
#define  LOW    0

#define DISABLE 0
#define ENABLE 1

#define EMPTY 0
#define FULL 1

#define ON 1
#define OFF 0

/*************端口定义*******************/
BIT     LED_G       :        PA.3;
BIT     TRG           :        PA.4;

#define GRE_LED_FLASH  {if(LED_G){LED_G=0;}else{ LED_G=1;}}

/*****************LED*******************/
BIT ubMsFlag;

/****************系统时钟*********************/
byte    count;
word    usTmrCnt;
bit     FLAG_NMS;
/**************T16*************************/
void    TIME16_Init(void)
{
    usTmrCnt=488;
    ubMsFlag=0;
    /*计算方法16M/*/
    $    T16M    IHRC,/1,BIT15;   
    
    INTEN.T16 =1;/*开启定时中断*/
    
    Intrq.T16 =0;/*清除中断请求*/
}

/*定义数组*/
byte ucBindChn[10];

/*定义数组*/
byte ucTxDat[10];

/*定义指针*/
word point;
/*定义指针*/
word uspChn;

void    FPPA0 (void)
{
    .ADJUST_IC    SYSCLK=IHRC/8, IHRC=16MHz,init_ram, VDD=3.0V;
    $ CLKMD IHRC/8,En_IHRC,En_ILRC,En_WatchDog;
    .delay 40000;

byte i;
    byte ucDat;
    
    $  LED_G     OUT,HIGH;

$ TRG  in,pull;
 
    TIME16_Init();
    
    
       ENGINT //全局中断开启

while (1)
    {
            wdreset;

/*取地址,吧数组的地址给到指针*/
         point=ucTxDat;
         /*循环次数,实现数据存入数组*/
         i=10;
         while(i--)
         {
            /*数据存入数组,把i存入数组*/
            *point=i;
            /*更新指针*/
             point++;
         }

/* 以上代码执行完成的话 ucTxDat[] 中填入了0-9的数了,实现数据填充*/

/*取地址,可以此处设置断点查看结果*/
         uspChn=ucBindChn;
         /*取地址,实现数组之间数据拷贝*/
         point=ucTxDat;

i=10;
         while(i--)
         {
            /*数据拷贝,*/
            *uspChn=*point;
            /*更新源指针*/
             point++;
             /*更新目的指针*/
             uspChn++;
         }

/* 以上代码执行完成的话,ucTxDat[] 中的数,拷贝到ucBindChn[]了,实现数据拷贝*/
        
         /*要使用指针实现随机寻址,可以用下面操作*/

i=0;/*假如这个i是别处传过来的变量*/

/* 比如要实现dat=ucTxDat[i],如果i是别处传过来的变量,那么用以下方式*/
          point=ucTxDat;
          point+=i;
          ucDat=*point;

/*如果i是一个具体数或固定数,不如这样方便*/
          ucDat=ucTxDat[0];

/*1ms定时时间到*/
         if( FLAG_NMS )
         {
             
            FLAG_NMS=0;
        }

}
}

void    Interrupt ( void )
{
    pushaf;

if ( Intrq.T16 )  
    {

Intrq.T16    =    0;
        
        STT16 usTmrCnt;
        
        if ( count>0 )
        {
            count--;
        }
        else
        {
            count   =   9;
            /*1ms*/
            FLAG_NMS=   1;

}

}

popaf;
}

/*end create by zhongvv QQ:85547259*/

应广单片机mini-c中用指针实现数组数功能相关推荐

  1. 手机c语言mini,一、应广单片机的Mini-C语言基础

    一.概述 项目需要性价比高一点的芯片,在澄海这边,台湾的芯片占了很大的市场.台湾芯片的特点是便宜,没办法,玩具出口生产量太大,1分钱的差价都有可能累积出大价钱.选型时选了应广单片机.对于用惯了C开发的 ...

  2. 应广单片机 PMS150G、FPC161 基础例子【GPIO设置】

    应广单片机 PMS150G.FPC161 基础例子[GPIO设置] 调试方式:仿真器5S-I-S02B 编译软件:FPPA IDE 编译语言:mini C 电脑系统:win10 软件功能:设置GPIO ...

  3. 应广单片机PMS152

    今天我们来讲讲应广单片机PMS152.PMS152系列是一款IO类型,完全静态以OTP为程序基础的CMOS  8bit 微处理器.它运用RISC的架构并且所有的指令架构的执行周期都是一个指令周期,只有 ...

  4. 应广单片机PMC150/PMS150

    前面我们讲了应广单片机PMS152,那么我们今天来讲一下应广单片机另外一个型号PMC150/PMS150. PMC150/PMS150是一个IO类型.完全静态,以OTP为程序存储基础的单片机.它运用R ...

  5. 应广单片机PMS134

    前面我们讲了几个应广常用型号的数据,我们今天来看一下应广单片机另外一个常规型号PMS134.当然我们公司作为应广单片机的代理,拥有应广全系列的产品,同时我们也可以提供技术支持,价格美丽,欢迎垂询. 言 ...

  6. 应广单片机芯片PMS132B -SOP8/SOP14/SOP16

    应广单片机芯片PMS132B -SOP8/SOP14/SOP16

  7. 应广单片机adc_应广单片机adc和pwm例程

    应广单片机Otp单核系列主要有以下几个系列,15x系列为纯iO,13x系列为带12bit的adc,17x系列为带8bit的adc,现在我用pms132B写个adc/pwm例程,方便大家快速上手.不多说 ...

  8. 应广单片机定时器中断配置

    应广单片机主要应用于消费电子,资源有限,只有一个16bit定时器,因此用好T16定时器就非常关键了.可以说是整个单片机系统的核心配置 不说那么多了,直接上代码. BIT     LED_G       ...

  9. 应广单片机PFS123按键中断控制数码管显示例程

    目录 应广单片机PFS123按键中断控制数码管显示视频 led数码管图片 应广单片机PFS123按键中断控制数码管显示代码 应广科技网址,开发工具,PMS123规格书:http://www.padau ...

  10. 应广单片机003烧录器自定义封装使用技巧

    应广003烧录器可以烧录MTP芯片,相比002烧录器,功能更多,但是使用复杂.有时候摸上半天也烧录不了器件. 现在通过烧录器自带的用之定义封装的方法进行烧录.这样就可以节省很多时间. 自定义烧录说明: ...

最新文章

  1. 启用 SR-IOV 解决 Neutron 网络 I/O 性能瓶颈
  2. SQL语句获取数据库名、所有表名、所有字段名及字段类型
  3. thttpd源码分析
  4. Python内置函数min(iterable, *[, key, default])
  5. openfalcon 组件监控_open-falcon监控业务URL探测
  6. 【JFreeChart】JFreeChart—输出时序图
  7. Android之打开闪光灯关键代码
  8. kotlin密封类_Kotlin密封级
  9. 2017百度之星程序设计大赛 总结
  10. 融云主办 WICC 2020 探寻互联网通信云技术风向标
  11. 网络层 --- 路由器工作原理
  12. [转] prove, verify, bear out, demonstrate, confirm, validate, testify, certify 的区别
  13. as it exceeds the max of 500KB._It#39;s a date的一语双关:它不仅仅表示“约会”
  14. win7中如何设置默认打印机
  15. 短视频直播平台第三方特效SDK接入教程(完整版)
  16. Linux系统之安装PDF阅读器
  17. JVM 垃圾收集器 学习笔记(《深入理解java虚拟机》之六 垃圾收集)
  18. 计算机蓝屏代码0xc0000020,Win10系统运行程序提示“损坏的映像 错误0xc0000020”如何解决?...
  19. PHP程序设计读书笔记七
  20. MyBatis查询缓存

热门文章

  1. android studio systrace,Android Systrace 基础知识 -- Systrace 简介
  2. cachecloud 安装
  3. 常见图像加密性能评价指标(详解加python实现)
  4. Sophix及热修复原理介绍
  5. Linux 拷贝文件
  6. 程序员记录biji的工具_程序员专用笔记 Quiver
  7. Microsoft SQL Server 双机热备份,实时同步
  8. 【学习笔记】统计学入门(5/7)——二项分布
  9. 解决tomcat中文乱码问题的方案
  10. linux终端打开excel,linux 打开excel命令 java