首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPLAB XC8编译器中存在延迟函数的问题

MPLAB XC8编译器中存在延迟函数的问题
EN

Stack Overflow用户
提问于 2022-08-19 17:05:25
回答 1查看 238关注 0票数 1

我正在使用PIC16F628A,但是IDE不接受_delay_ms命令,也不构建/编译,我不知道该做什么.这是我的代码:

代码语言:javascript
复制
#include <xc.h> // STANDARD INCLUDE FILE FOR MICROCHIP PRODUCTS

// uc CONFIG (START)

#pragma config FOSC = HS // 4MHz EXTERNAL CLOCK
#pragma config WTDE = ON
#pragma config PWRTE = OFF
#pragma config MCLRE = ON
#pragma config BOREN = ON
#pragma config LVP = ON
#pragma config CPD = OFF
#pragma config CP = OFF

// uC CONFIG (END)

#define _XTAL_FREQ 4000000
#define BT1 PORTA.RA0 // Button with number 1
#define BT2 PORTA.RA1 // Button with number 2
#define BT3 PORTA.RA2 // Button with number 3
#define BT4 PORTA.RA3 // Button with number 4

#define a PORTB.RB0 // "a" segment from 7-segment display
#define b PORTB.RB1 // "b" segment from 7-segment display
#define c PORTB.RB2 // "c" segment from 7-segment display
#define d PORTB.RB3 // "d" segment from 7-segment display
#define e PORTB.RB4 // "e" segment from 7-segment display
#define f PORTB.RB5 // "f" segment from 7-segment display
#define g PORTB.RB6 // "g" segment from 7-segment display

void main ()
{
  TRISA = 0x01;
  TRISB = 0x00;
  PORTA = 0x00;
  PORTB = 0x00;

  while(1)
  {
     if (BT1 == 1)
     {
       a = 0x00;
       b = 0x01;
       c = 0x01;
       d = 0x00;
       e = 0x00;
       f = 0x00;
       g = 0x00;
       _delay_ms(5000);
       a = 0x00;
       b = 0x00;
       c = 0x00;
       d = 0x00;
       e = 0x00;
       f = 0x00;
       g = 0x00;
      _delay_ms(1000);  
    }    
  }
}

我需要添加库吗?这段代码在MikroC中运行良好,但我正在努力学习它,因为它是免费的,而且似乎是嵌入式系统的行业标准工具。

EN

回答 1

Stack Overflow用户

发布于 2022-08-22 05:47:38

您不需要额外的库,但是在xc8中,函数的名称是带有两个___delay_ms(...)

请记住,这些函数实际上是行宏,它们的最大延迟值取决于部件类型和时钟频率。为了获得更长的延迟,使用这些宏将它们放在一个for循环中。我想__delay_ms(5000)有点过分了。

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

https://stackoverflow.com/questions/73420073

复制
相关文章

相似问题

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