W
winit_a
Guest
V súbore delay.c a delay.h
/ *
* Oneskoriť funkcií HI-TECH C pre PIC
*
* Funkcia dostupná:
* DelayUs (x) oneskoriť zadaný počet mikrosekund
* DelayMs (x) oneskoriť zadaný počet milisekúnd
*
* Majte na pamäti, že existuje rozsah obmedzenia: x nesmie prekročiť 255 - pre xtal
* Frekvencia> 12MHz rozmedzí pre DelayUs je ešte menšia.
* Ak chcete použiť DelayUs je nevyhnutné, len za účelom zaradenia tohto súboru, pre použitie
* DelayMs musíte zahrnúť delay.c vo vašom projekte.
*
* /
/ * Nastaví kmitočet kryštálu v CPP preddefinované symboly v zozname
HPDPIC, alebo o Picc commmand line,
napríkladPicc-DXTAL_FREQ = 4MHz
alebo
Picc-DXTAL_FREQ = 100kHz
Všimnite si, že to je krystal frekvenciu procesora hodiny
deleno 4.
*
Uistite sa,
že tento kód je zostavený s plnou optimalizáciu!
* /
# Ifndef XTAL_FREQ
#
Define XTAL_FREQ 4MHz / * Crystal frekvencie v MHz * /
# Endif
#
Define MHZ * 1000L / * počet kHz v MHz * /
#
Define KHz * 1 / * počet kHz v kHz * /
# Ak XTAL_FREQ> = 12MHz
#
Define DelayUs (x) (unsigned char _dcnt; \
_dcnt = (x) * ((XTAL_FREQ) / (12MHz)), \
while (- _dcnt! = 0) \
continue
# Ostatné
#
Define DelayUs (x) (unsigned char _dcnt; \
_dcnt = (x) / ((12MHz) / (XTAL_FREQ)) | 1; \
while (- _dcnt! = 0) \
continue
# Endif
extern void DelayMs (unsigned char);
-------------------------------------------------- ----------------------------
ak sú použité PIC16F877 Xtal 10MHz
Ako vypočítať meškanie funkcie
vo vzorke zložky nie je správny I test blikání LED v prístave PA0
while (1)
(
PA0 = 0;
delayms (1000) / / Na 1sec
PA0 = 1;
delayms (1000) / / vypnuté 1 Sec
)
časové oneskorenie je rýchlejšie potom 1 Sec
Pomôžte mi prosím
/ *
* Oneskoriť funkcií HI-TECH C pre PIC
*
* Funkcia dostupná:
* DelayUs (x) oneskoriť zadaný počet mikrosekund
* DelayMs (x) oneskoriť zadaný počet milisekúnd
*
* Majte na pamäti, že existuje rozsah obmedzenia: x nesmie prekročiť 255 - pre xtal
* Frekvencia> 12MHz rozmedzí pre DelayUs je ešte menšia.
* Ak chcete použiť DelayUs je nevyhnutné, len za účelom zaradenia tohto súboru, pre použitie
* DelayMs musíte zahrnúť delay.c vo vašom projekte.
*
* /
/ * Nastaví kmitočet kryštálu v CPP preddefinované symboly v zozname
HPDPIC, alebo o Picc commmand line,
napríkladPicc-DXTAL_FREQ = 4MHz
alebo
Picc-DXTAL_FREQ = 100kHz
Všimnite si, že to je krystal frekvenciu procesora hodiny
deleno 4.
*
Uistite sa,
že tento kód je zostavený s plnou optimalizáciu!
* /
# Ifndef XTAL_FREQ
#
Define XTAL_FREQ 4MHz / * Crystal frekvencie v MHz * /
# Endif
#
Define MHZ * 1000L / * počet kHz v MHz * /
#
Define KHz * 1 / * počet kHz v kHz * /
# Ak XTAL_FREQ> = 12MHz
#
Define DelayUs (x) (unsigned char _dcnt; \
_dcnt = (x) * ((XTAL_FREQ) / (12MHz)), \
while (- _dcnt! = 0) \
continue
# Ostatné
#
Define DelayUs (x) (unsigned char _dcnt; \
_dcnt = (x) / ((12MHz) / (XTAL_FREQ)) | 1; \
while (- _dcnt! = 0) \
continue
# Endif
extern void DelayMs (unsigned char);
-------------------------------------------------- ----------------------------
ak sú použité PIC16F877 Xtal 10MHz
Ako vypočítať meškanie funkcie
vo vzorke zložky nie je správny I test blikání LED v prístave PA0
while (1)
(
PA0 = 0;
delayms (1000) / / Na 1sec
PA0 = 1;
delayms (1000) / / vypnuté 1 Sec
)
časové oneskorenie je rýchlejšie potom 1 Sec
Pomôžte mi prosím