簡體   English   中英

在 MPLAB XC8 編譯器中遇到延遲 function 問題

[英]Having trouble with delay function in MPLAB XC8 compiler

我正在使用 PIC16F628A 但 IDE 不接受_delay_ms命令並且不構建/編譯,我不知道該怎么做......這是我的代碼:

#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 中運行良好,但我正在嘗試學習 MPLAB,因為它是免費的,並且似乎是嵌入式系統的行業標准工具。

您不需要額外的庫,但在 xc8 中,function 的名稱是__delay_ms(...)和兩個_

請記住,這些函數實際上是在線宏,它們的最大延遲值取決於部件類型和時鍾頻率。 要使用這些宏獲得更長的延遲,請將它們放在 for 循環中。 我猜__delay_ms(5000)有點過分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM