Guida Hi-tech PIC C DelayMs Calcolare & DelayUs Function

W

winit_a

Guest
Nel file delay.c e delay.h
/ *
* Funzioni Delay per HI-TECH C su PIC
*
* Funzioni disponibili:
* DelayUs (x) Ritardo numero specificato di microsecondi
* DelayMs (x) Ritardo numero specificato di millisecondi
*
* Si noti che ci sono dei limiti range: x non deve superare i 255 - per xtal
Frequenze *> 12MHz la gamma di DelayUs è ancora più piccolo.
* Per utilizzare DelayUs è solo necessario includere questo file, da utilizzare
* DelayMs si deve includere delay.c nel progetto.
*
* /

/ * Impostare la frequenza di cristallo nel CPP predefiniti simboli elenco
HPDPIC, o sulla linea commmand PICC, ad esempio,
picc-DXTAL_FREQ = 4MHZ

o
picc-DXTAL_FREQ = 100KHZ

Si noti che questa è la frequenza di cristallo, il clock della CPU è
diviso per 4.

* Assicurarsi che questo codice è compilato con ottimizzazione completa!

* /

# ifndef XTAL_FREQ
# define XTAL_FREQ 4MHZ / * Crystal frequenza in MHz * /
# endif

# define MHZ * 1000L / * numero di kHz in una MHz * /
# define KHZ * 1 / * numero di kHz in un kHz * /

# se XTAL_FREQ> = 12MHZ

# define DelayUs (x) (_dcnt unsigned char; \
_dcnt = (x) * ((XTAL_FREQ) / (12MHz)); \
while (- _dcnt! = 0) \
continue;)
# else

# define DelayUs (x) (_dcnt unsigned char; \
_dcnt = (x) / ((12MHz) / (XTAL_FREQ)) | 1; \
while (- _dcnt! = 0) \
continue;)
# endif

DelayMs extern void (unsigned char);

-------------------------------------------------- ----------------------------
se usato PIC16F877 Xtal 10MHz
Come calcolare il tempo di ritardo funzione
nella cartella del campione non è corretta I test LED lampeggiano in PA0 porto

while (1)
(
PA0 = 0;
delayms (1000) / / Il 1sec
PA0 = 1;
delayms (1000) / / Off 1 Sec
)

ritardo di tempo è più veloce poi 1 Sec
Help me please

 
HPDPIC utilizzo del programma.Creato il nuovo progetto Make => Nuovo progetto.Quindi usare make => CPP pre-definito il simbolo ...premere F10 e scrivere _DXTAL_FREQ = 20MHZ e poi ESC.

 
Salve!
La routine di ritardo in www.microchipc.com sono perfetti.
Non passa un vaue maggiore di 255, dato che la funzione assume caratteri unsigned come argomenti;
Buona fortuna.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Salve,

Se andate a leggere il codice potrai vedere alcune linee che dicono:

# ifndef XTAL_FREQ# define XTAL_FREQ 4MHZ / * Crystal frequenza in MHz * /# endifCi si dovrà modificare il 4 in 20 così la giusta velocità di clock sarà impostato.il dosnt PIC sapere cosa avete collegato all'esterno!

Buona fortuna.

 

Welcome to EDABoard.com

Sponsor

Back
Top