T
tyassin
Guest
Chào
Tôi làm một số bài tập đơn giản và rất mới vào MCU.Tuy nhiên tôi có một vấn đề với một mã số rất đơn giản, C (xem dưới đây).
Các mã được supossed đến ánh sáng bốn LEDs trên PICkit để cập 1,2,4,8.Điều này nên ánh sáng lên trong chuỗi LEDs, một của một.
Tuy nhiên, chỉ làm việc khi tôi có một "sự chậm trễ" bằng 5 hoặc ít hơn.Nếu tôi có một "sự chậm trễ" của 500 sau đó chỉ nói là người đầu tiên LED (RC0) là lit.Khác, kết quả đầu ra được không.Những "msecbase" chức năng cần có sự chậm trễ 1ms.Các PIC là 16F690.
Mã số:# bao gồm <pic.h>
__config (INTIO & WDTDIS & MCLRDIS & Unprotect);unsigned sự chậm trễ ngắn = 7;
void tạm dừng (unsigned ngắn msvalue);
void msecbase (void);chính ()
(
ANSEL = 0;
CM1CON0 = 0;
CM2CON0 = 0;
PORTC = 0x00;
TRISC = 0x00;
trong khi (1 == 1)
(
int x;
for (x = 1; x <9; x = x * 2)
(
PORTC = x;
tạm dừng (chậm trễ);
)
)
)void tạm dừng (unsigned ngắn msvalue)
(
unsigned ngắn y;
cho (y = 0; y <= msvalue; y )
(
msecbase ();
)
)void msecbase (void)
(
OPTION = 0b00000001;
TMR0 = 0xD;
trong khi (! T0IF);
T0IF = 0;
)
Tôi làm một số bài tập đơn giản và rất mới vào MCU.Tuy nhiên tôi có một vấn đề với một mã số rất đơn giản, C (xem dưới đây).
Các mã được supossed đến ánh sáng bốn LEDs trên PICkit để cập 1,2,4,8.Điều này nên ánh sáng lên trong chuỗi LEDs, một của một.
Tuy nhiên, chỉ làm việc khi tôi có một "sự chậm trễ" bằng 5 hoặc ít hơn.Nếu tôi có một "sự chậm trễ" của 500 sau đó chỉ nói là người đầu tiên LED (RC0) là lit.Khác, kết quả đầu ra được không.Những "msecbase" chức năng cần có sự chậm trễ 1ms.Các PIC là 16F690.
Mã số:# bao gồm <pic.h>
__config (INTIO & WDTDIS & MCLRDIS & Unprotect);unsigned sự chậm trễ ngắn = 7;
void tạm dừng (unsigned ngắn msvalue);
void msecbase (void);chính ()
(
ANSEL = 0;
CM1CON0 = 0;
CM2CON0 = 0;
PORTC = 0x00;
TRISC = 0x00;
trong khi (1 == 1)
(
int x;
for (x = 1; x <9; x = x * 2)
(
PORTC = x;
tạm dừng (chậm trễ);
)
)
)void tạm dừng (unsigned ngắn msvalue)
(
unsigned ngắn y;
cho (y = 0; y <= msvalue; y )
(
msecbase ();
)
)void msecbase (void)
(
OPTION = 0b00000001;
TMR0 = 0xD;
trong khi (! T0IF);
T0IF = 0;
)