Problems with Counter 2 8254

Please. i'm a student Anybody help me to solve that problem. counter 2 doesn't counts and i think it least some additional configuration procedure but i don't got it. it's urgent. i appreciate ur hels anyway

God Bless U Guys

DSEG SEGMENT 'DATA' BBUFFER DB 402 DUP ('@') ;BUFER PARA BORRADO FREC DB "FRECUENCIA: KHZ" LONGFREC EQU $-FREC ERROR DB "HA SOBREPASADO LA FRECUENCIA MINIMA" LONGERROR EQU $-ERROR DEC0 DB 1 DUP(0) DEC1 DB 1 DUP(0) DEC2 DB 1 DUP(0) DEC3 DB 1 DUP(0) AUXILIAR DB 1 DUP(0) ROW DW 1 DUP(0) COL DW 1 DUP(0) BINARIO DB 125 AUX DB 1 DUP(0) COLOR DB 0FFH LINEA DB 00H TIMED DW 25 TCOLOR DB 0FH BAND DB 0 BAND_A DB 0 ANTERIOR DW 1 DUP(0) MUESTRA DB 0 PUNTER DW 0 CONT_DESB DW 1 PACL DB 0 PAC DB 0 AJUS_NUM DW 0 DSEG ENDS SSEG SEGMENT STACK 'STACK' DB 256 DUP(0) SSEG ENDS ; CSEG SEGMENT 'CODE' INI PROC FAR ;*******CONSTANTES******* LMT_H EQU 417D LMT_V EQU 270D RESOL EQU 1D ;************************ MOV AX, DSEG MOV DS, AX MOV ES, AX ; MOV DX, 37AH ; IN AL,DX MOV AL,00110000B MOV DX, 37AH OUT DX,AL CONT2 EQU 42H P_CONF EQU 43H ; MOV 63H, 100010000B ; CONFIGURACI=D3N DEL PUERTO PROGRAMABLE MOV AL, 10110100B ; CONFIGURACI=D3N DEL TEMPORIZADOR ; SE CARGA EL VALOR BASE DE LA TEMPORIZACION ; RESULTADO DIVIDIR LA FREC DEL CLK ; DEL 8253 (1193180)ENTRE LA FRECUENCIA ; DE MUESTREO QUE SON 25KHZ ; MOV DX,43h OUT DX,AL ; SE PRECARGA EL CONTADOR NOP NOP MOV DX,42h MOV AL,0BH OUT DX,AL ; SE PRECARGA EL CONTADOR NOP NOP MOV AL,0E9H OUT DX,AL ; SE PRECARGA EL CONTADOR NOP NOP MOV ANTERIOR, 0E90BH INICIO: MOV AH,00H;***SET VIDEO MODE MOV AL,12H INT 10H GRAPHICS: ;// BORRAR PUNTOS VIEJOS ; CALL BORRAR ;//DIBUJAR REJILLA CALL REJILLA ;****************** MOV PUNTER,OFFSET BBUFFER MOV COL,0010H SAMP: MOV CX,TIMED TIEMPO: PUSH CX ; CALL DELAY CALL TECLADO POP CX LOOP TIEMPO

;;;;;;;;;;;;;;;;PUNTO: MOV CX,COL ; MOV BX,SI MOV SI,PUNTER MOV AL,[SI] MOV SI,BX MOV AH,255D SUB AH,AL MOV AL,AH AND AX,0FFH ADD AX,0010H MOV DX,AX MOV AH,0CH ;PETICION PARA ESCRIBIR UN PUNTO MOV BH,0 ;PAGINA NUMERO MOV AL,00H ;COLOR DEL PIXEL INT 10H; ; ; ; MOV DX,378h IN AL,DX MOV BINARIO,AL ;MOV AL,77H MOV BX,SI MOV SI,PUNTER MOV [SI],AL ;GUARDAR EL PUNTO PARA BORAR MOV SI,BX

;=2E.................................

MOV MUESTRA,AL CMP BAND_A,0 JNE NEGATIVO ;si el anterior es negativo CMP MUESTRA, 7FH ;si es positivo JNGE CRUCE ;si el actual es negativo MOV BAND,0 ;si es positivo JMP SEGUIR ; CRUCE: ; MOV PAC,"C" ; CALL PACO;;;;;;;;;;;;;;;;;;;PACO POLICE MAN MOV BAND,1 INC CONT_DESB JMP SEGUIR

NEGATIVO: CMP MUESTRA,7FH JNGE SEGUIR MOV BAND,0 JMP SEGUIR ; SEGUIR: ; MOV PAC,"S" ; CALL PACO;;;;;;;;;;;;;;;;;;;PACO POLICE MAN

MOV AL, BAND MOV BAND_A, AL; ;MOV DX,43H ; OR DX,11000000B MOV AL,11011000B MOV DX,43h OUT DX, AL NOP NOP MOV DX,42h IN AL,DX MOV AH,AL IN AL,DX PUSH AX CMP ANTERIOR, AX JNC DIBUJO ; DESBORD: ; MOV PAC,"D" ; CALL PACO;;;;;;;;;;;;;;;;;;;PACO POLICE MAN CMP CONT_DESB,0 JNE CONTADOR MOV CONT_DESB,1 MOV AH,13H MOV AL,0 MOV BH,00 MOV BL,12H MOV CX,LONGERROR MOV DH,28 MOV DL,0 PUSH DS POP ES MOV BP,OFFSET ERROR INT 10H ; CONTADOR: ; MOV AH,13H MOV AL,0 MOV BH,00 MOV BL,12H MOV CX,LONGFREC MOV DH,28 MOV DL,40 PUSH DS POP ES MOV BP,OFFSET FREC INT 10H MOV AX,CONT_DESB MOV AJUS_NUM,AX CALL AJUSTE MOV DH,28;LINEA MOV DL,52;POSICION CALL DECIM MOV CONT_DESB,1 ; DIBUJO: POP AX MOV ANTERIOR, AX ; MOV CX,COL MOV AL,BINARIO MOV AH,255D SUB AH,AL MOV AL,AH AND AX,0FFH ADD AX,0010H MOV DX,AX MOV AH,0CH ;PETICION PARA ESCRIBIR UN PUNTO MOV BH,0 ;PAGINA NUMERO MOV AL,0FH ;COLOR DEL PIXEL INT 10H; ;policia nro 1 ; ; ;*********************************************************** ; INC PUNTER INC COL CMP COL,LMT_H JNE SAMP JMP GRAPHICS MOV AH,00H MOV AL,02H INT 10H MOV AX, 4C00H ; EXIT TO OPERATING SYSTEM. INT 21H INI ENDP

Reply to
Everton Mc
Loading thread data ...

I don't have time to look over your code, sorry.

But if this is a PC, you might look to see if the gate input to counter 2 is letting the counter decrement. IIRC (it's been years), there's an IO line on (I think...) the keyboard controller that feeds into the gate 2 input of the 8254. If this output is in the wrong state, the counter won't count.

When you get to the UART part of the class, be sure to look at the out

2 output of the UART. It's set up to prevent interrupts unless it's set to the correct state.

HTH, -=Dave

--
Change is inevitable, progress is not.
Reply to
Dave Hansen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.