programowanie 8254 [na wczoraj]



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "bezrobotny" <elwis2000_at_nospam_go2.pl>
Subject: programowanie 8254 [na wczoraj]
Date: Tue, 10 Dec 2002 11:10:19 +0100


jak programuje się licznik 8254 (taki jak w PC)?
czy kto¶ komu się to udało może mi powiedzieć?
tzn.
w jaki sposób (jak± komend±) wpisać liczbę pocz±tkow±
do licznika?
w jaki sposób odczytać aktualny stan licznika (podczas
odliczania)?

no i dlaczego taki kod nie działa (Z80):

LD A,00110001b ; ładowanie licznika 8254
OUT (L8254_CFG),A
LD A,L
OUT (L8254_L0),A
LD A,H
OUT (L8254_L0),A

....

LD A,00000001b ; odczyt aktualnego
OUT (L8254_CFG),A ; stanu licznika do HL
LD A,00110001b
OUT (L8254_CFG),A

IN A,(L8254_L0)
LD L,A
IN A,(L8254_L0)
LD H,A

efekt jest taki, jakby licznik w ogóle nie odliczał (mimo iż
GATE=1 i zegar na CLK jest OK), adresy s± oczywi¶cie
dobre _CFG to +03h, _L0 to +00h.

POMOCY!!! PILNE! LABORKA.

z góry dziękuję





Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: Simius <simius_at_nospam_go2.pl>
Subject: Re: programowanie 8254 [na wczoraj]
Date: Thu, 12 Dec 2002 21:59:14 GMT




Wiadomo¶ć napisana przez: bezrobotny:

jak programuje się licznik 8254 (taki jak w PC)?
czy kto¶ komu się to udało może mi powiedzieć?
tzn.
w jaki sposób (jaką komendą) wpisać liczbę początkową
do licznika?
w jaki sposób odczytać aktualny stan licznika (podczas
odliczania)?

no i dlaczego taki kod nie działa (Z80):

LD A,00110001b ; ładowanie licznika 8254
OUT (L8254_CFG),A
LD A,L
OUT (L8254_L0),A
LD A,H
OUT (L8254_L0),A

....

LD A,00000001b ; odczyt aktualnego
OUT (L8254_CFG),A ; stanu licznika do HL
LD A,00110001b
OUT (L8254_CFG),A

IN A,(L8254_L0)
LD L,A
IN A,(L8254_L0)
LD H,A

efekt jest taki, jakby licznik w ogóle nie odliczał (mimo iż
GATE=1 i zegar na CLK jest OK), adresy są oczywi¶cie
dobre _CFG to +03h, _L0 to +00h.

POMOCY!!! PILNE! LABORKA.

z góry dziękuję

Wydaje mi sie, że niepotrzebnie wpisujesz slowo sterujace 31H zaraz po
Counter Latch Command (01H), poniewaz CLC nie zmienia trybu pracy
licznikow, a tylko zatrzaskuje ich wartosc do chwili odczytu. Licznik caly
czas pracuje zgodnie z trybem wpisanym na poczatku.