przez Jacek Bonecki » Pn, 2 kwi 2012, 14:08
Jak już Panu pisałem do dyspozycji użytkownika pozostaje jeden programowalny 16-to bitowy licznik z układu 82C54 (wyciąg ze schematu blokowego poniżej). Do jego obsługi dostępnych jest kilka prostych funkcji:
1. DRV_CounterEventStart
2. DRV_CounterEventRead
3. DRV_CounterFreqStart
4. DRV_CounterFreqRead
5. DRV_CounterPulseStart
6. DRV_CounterReset
Czyli umożliwiają pracę w trybie "EventCounting" (1+2), "FreqMeasurement" (3+4) oraz "SquareWaveGenerator" (5). Do odliczania czasu (ale tylko na pollingu - bez generowania przerwań) nadawałby się owszem pierwszy tryb. Ale niestety wywołanie funkcji CounterEventStart skutkuje wykorzystaniem wejścia CNT0_CLK jako sygnału zegarowego. Tylko funkcja DRV_CounterPulseStart korzysta z wewnętrznego sygnału zegarowego 100kHz, ale zadaniem tego trybu jest tylko generowanie sygnału prostokątnego o zadanej częstoliowści, nie umożliwia on odczytu rejestrów licznika.
Podsumowując: istniałaby tu możliwość wykorzystania funkcji DRV_CounterEventStart+DRV_CounterEventRead, ale tylko pod warunkiem dołączenia do wejścia CNT0_CLK odpowiedniego, dokładnego sygnału taktującego.
- Załączniki
-
- 1710.jpg
- 82C54 na karcie PCI-1710
- (35.98 KiB) Pobrane 1001 razy
Pozdrawiam
Jacek Bonecki
Elmark Automatyka S.A.