首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MikroC:将引脚作为参数传递给函数

MikroC:将引脚作为参数传递给函数
EN

Stack Overflow用户
提问于 2016-09-02 12:09:02
回答 2查看 1.1K关注 0票数 0

我试图在MikroC中为PIC16F882单片机编写一个自定义延迟函数。

我想继续检查一个特定的针的MCU,看看它是否改变了,整个延迟功能。

但问题是,我不能将引脚作为参数传递给函数。还有其他方法可以做到吗?

标志的目的是确定延迟的时间。在Timer0溢出后,它将自动转到0。我并没有在代码中加入这个部分来使事情变得更容易理解。

我的职责是:

代码语言:javascript
复制
int flag = 0;

void delay(bit pin_to_check){
     while(flag == 1){
        if(flag == 0 || pin_to_check == 0) {
             break;
        }
     }
}

void main(){
     flag = 1;
     delay(RA3_bit);
}

我得到的编译时错误是:

代码语言:javascript
复制
Parameter 'pin_to_check' must not be of bit or sbit type
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-02 14:33:47

由于不能将bitsbit作为参数传递,所以可以:

  1. 完全避免使用该函数(显然),
  2. 使用预处理宏而不是函数,
  3. 将整个寄存器和位号传递给函数。

案例3在这条线中进行了解释,其内容类似于:

代码语言:javascript
复制
void delay(unsigned char *PORT, unsigned char bitNo) {
    unsigned char bitMask = 0x01 << bitNo;
    while (flag == 1 && ((*PORT) & bitMask) != 0)
    { }
}

// delay until bit 3 is set
delay(&PORTA, 3)
票数 0
EN

Stack Overflow用户

发布于 2016-09-02 12:18:00

看看bits.htm#bit

它说bit不能用于参数列表。你需要把注册名传递进去。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39292078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档