PICC C中的函数

PICC中函数,由于堆栈资源的原因,在PICC中的函数不支持函数的递归调用。

1、带返回值的函数

2、无返回值的函数


在PICC中,我们直接使用寄存器的名字和位名,这些都归功于相关的头文件。还有一些宏定义也在这些头文件中。

’PIC.H‘文件是PICC编译必需的头文件。

根据用户所选用的单片机芯片型号自动包含相应的头文件。

定义常用的嵌入汇编宏定义。配置位定义、EEPROM初始化数据。当中的宏定义如同函数,减少堆栈的使用次数。

注意:宏定义的最后一行通常不用“;”,调用宏定义时就要加上’;‘,这样调用宏定义就像调用一个C函数一样。


PIC168XA.H是对具体单片机的特殊功能寄存器及位进行命名

static volatile unsigned char PORTB @0X06;

所有寄存器定义中均有’static volatile‘关键字,关键字’static‘是说明这些变量是静态的。


在PICC安装目录的INCLUDE目录中,还有许多其他头文件,最常用的数学类函数math.h。

在调用内部函数时,变量类型如不一致,PICC将自动转换。


PICC的中断服务程序的编制

PICC可以实现C语言的中断服务程序。void interrupt INT_SER(void)

函数名“INT_SER”可以是符合命名规则的其他字符。PICC在最后进行代码连接时会自动将该函数定位到0x0004中断服务响应。编译器也会实现中断函数的返回指令’retfie‘.PICC还会自动加入代码实现中断现场的保护与恢复,编程时不要像编写汇编那样加入中断现场保护和恢复指令语句。

注意:在中断服务程序中调用的函数,必须专用,即不能同时在中断之外的程序中调用又在中断服务程序中调用AD_SUB;只要不重名即可。


PIC16系列单片机的中断入口只有一个,即0004,因此程序中只有一个中断服务函数,可以通过判断中断标志位来确定中断程序的执行走向。


在C中嵌入汇编指令

嵌入汇编有2种方法:一是行嵌入,二是块嵌入

1、行嵌入格式为 asm("汇编语句");

2、如果要嵌入几个汇编指令,则用块嵌入,块嵌入的格式为

#asm

汇编指令 1

汇编指令 2

...

汇编指令 n

#endasm

其中的汇编指令必须符合汇编指令规范,而且在汇编指令中引用变量必须是PICC定义的全局变量(包括PICC头文件所定义的特殊功能寄存器和用户定义的变量),且在变量前加上"_".


行嵌入中在后面有分号,块嵌入中每一行都没有分号。

既然用了C语言,就不要惦记着汇编语言!除非万不得已,一般不要嵌入汇编语言。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值