• PIC基础学习3


    PICC中最好用前减来控制循环体。

    来看看下面的语句:

    for(x = 100; –x;){;}和for(x = 0; x < 100; x++){;}

    在字面上2者意思一样的,便是可以能过汇编查看代码。后者代码雍长,而前者就很好的汇编出了简洁的代码。所以在PICC中最好用前者的形式来写循环体,好的C编译器会自动把增量循环化为减量循环。

    PICC的位操作:

    要是需要一个地址固定的变量来位操作,可以参看PIC.H里面定义寄存器。

    如:用25H内存来定义8个位变量。

    static volatile unsigned char myvar @ 0x25;

    static volatile bit b7 @(unsigned)&myvar*8+7;

    static volatile bit b6 @(unsigned)&myvar*8+6;

    这样即可以对myvar操作,也可以对b0~b7直接位操作。

    PICC关于unsigned 和signed的几个关键问题

    unsigned是表示一个变量是无符类型。signed表示有符号。它们表示数值

    范围不一样。PICC默认所有变量都是unsigned类型的,哪怕你用signed变量。因为有符号运算耗资源,而且MCU运算一般不涉及有符号运算。在PICC后面加上-SIGNED_CHARR后缀可以告诉PICC把signed变量当作有符号处理。

    PICC在有符号编程环境下,对于递减的for语句的条件判断语句不能是>=0的形式。

    对于递减到0的for语句推荐用>0判断语句来实现,不会出现编译错误的问题,并且不会增加代码量,尤其对于数组操作的方面。

    PIC单片机是低电平复位

    PIC系列单片机的时钟电路设计有四种工作模式,标准XT,高速HS(4MHZ以上),低频LP(32.768HZ)和阻容RC。

    PICC基本上符合ANSI标准,除了一点:不支持函数的递归调用。是因为PIC单片机的特殊堆栈结构。 PIC单片机的堆栈是硬件实现的。

    PICC函数,特别注意main函数必须是一个没有返回的死循环。

    除了bank0 内的变量声明不需要特殊处理外,定义在其佗bank内的变量前面必须加上相应的bank序号,例如:

    bank1 unsinged char buffer[32];

    bank2 bit flag1,flag2;

    bank3 float val[8];

    虽然变量所在的bank定位必须由编程员自己决定,但是编写源程序时进行变量存取操作前无需特意编写设定bank的指令。C编程器会根据所操作的对象自动生成对应的bank设定的汇编指令;为避免频繁的bank切换以提高代码效率,尽量把实现同一任务的变量定位在同一个bank内,对于不同bank内的变量进行读写操作时也尽量把位于相同bank内的变量归并在一起进行连续操作。

    PICC把所有函数内部定义的auto型局部变量放在bank0,因此用户自己定位在bank0内的变量字节数将受到一定的限制。

    bit型位变量只能是全局的或静态的。

    PICC专门提供了一种长度为24位的截短型浮点数,它损失了浮点数的一点精度。

  • 相关阅读:
    安装vim
    linux输入法
    freemarker 超出字符用省略号表示
    三维数组去重
    php 相同的产品 一个背景色
    php 判断白天黑夜
    PHP-preg_replace过滤字符串代码
    checkbox 更新回显
    php socket编程入门
    命令行执行php
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1917000.html
Copyright © 2020-2023  润新知