18.08.2013 Views

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.6.7 pci6025e<br />

Il modulo pci6025e.h implementa le procedure di basso livello per l’accesso<br />

alle funzionalità della scheda National Intruments PCI-6025E.<br />

Nel file 6025reg.h sono dichiarate le costanti simboliche che servono a<br />

migliorare la chiarezza del codice, nonché ad effettuare delle chiamate alle<br />

funzioni corrette senza conoscere i codici numerici dei singoli parametri.<br />

Un esempio dell’utilizzo delle funzioni di controllo dei timer è<br />

rappresentato dal seguente frammento di codice:<br />

init_pci_mite();<br />

init_GPCT_<strong>DI</strong>O();<br />

G0_reset();<br />

timer_clock_configure(0);<br />

PFI_pin_program(PFI_PIN_4, PFI_SET_INPUT, PFI_7_NONE);<br />

G0_continuos_pulse_train_generation(G_IN_TIMEBASE2,<br />

G_COUNT_RISING_EDGE, G_LEVEL_GATING,<br />

G_GATE_PFI4, G_<strong>DI</strong>SABLE_INVERSION, G_TOGGLE_ON_TC,<br />

G_ACTIVE_LOW, G_ENABLE_SWITCHING, 5, 10, 4);<br />

enable_G0_out();<br />

G0_Arm_All();<br />

G0_pulse_train_change(4, 10);<br />

Nell’esempio, dopo l’inizializzazione del bus PCI e quella dei contatori,<br />

viene impostato il clock di default per entrambi i timer, con frequenza di 100<br />

KHz, e viene programmato il pin 4 dei PFI per essere utilizzato come segnale di<br />

abilitazione del conteggio. Successivamente viene programmato il timer per<br />

generare una onda quadra con le seguenti caratteristiche:<br />

- 5 periodi di clock di attesa prima di generare il primo impulso;<br />

- un low-time pari a 10 periodi di clock,<br />

- un high-time pari a 5 periodi di clock, quindi un duty-cycle pari a 1/3.<br />

139

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!