[英]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.