📄 ram.asm
字号:
;----------------------------------------------------------------------------;
; RAM.MAS Variables/Constantes ;
; ======= ;
;----------------------------------------------------------------------------;
; Programado por Ing.Gabriel Dubatti (c)2005-2006 ;
; info@ingdubatti.com.ar ;
; www.ingdubatti.com.ar ;
;----------------------------------------------------------------------------;
; PORTA:
; PA0 = (OUT) BKD 68HCS908 (via un negador OC)
; PA1 = (IN) BKD 68HCS908 (input capture)
; PA2 = (IN) (IRQ) BKD 68HCS908 (lee con BIL/BIH)
; PA3 = (IN) RX puerta serie PC
; PA4 = (OUT) RESET 68HCS908 (via un negador OC)
; PA5 = (OUT TX puerta serie PC
PA_B_BKD EQU 0 ;OUT BKD NEGADO
PA_B_BKDIN EQU 1 ;IN BKD (lee con Input capture)
PA_B_INBKD EQU 2 ;IN BKD (lee con IRQPIN)
PA_B_RX EQU 3
PA_B_RESET EQU 4
PA_B_TX EQU 5
DDRA_INIT EQU %11110001 ;direccion inicial del PORTA
PORTA_INIT EQU %00100000 ;valor inicial del PORTA (TX=1)
;ancho del pulso de SYNC en unidades de 4 ciclos de 4MHZ
;clock BDM = 4MHZ * 128 / (syncwidth*4) => 128MHZ / syncwidth
;
;syncwidth= 128MHz / clock BDM
; 3 => 32-40 MHZ (clock BDM)
; 4 => 26-32 MHZ (clock BDM)
; 5 => 21-26 MHZ (clock BDM)
; 6 => 18-21 MHZ (clock BDM)
; 7 => 16-18 MHZ (clock BDM)
;...
; 16 => 7.5-8 MHZ (clock BDM)
syncwidth ds 2 ;
;ancho de 1 bit = 16 pulsos BDM (= syncwidth/2)
bitwidth ds 2 ;
;tx0pos= (bitwidth * 13 / 16)-1
tx0pos ds 2 ;hasta donde llega el "0"
;tx1pos= (bitwidth + 3 / 4)-1
tx1pos ds 2 ;hasta donde llega el "1"
;treadpos= ((bitwidth * 5 +1) / 8)
treadpos ds 2 ;donde leer los bits
;ancho de 1 bit redondeado a 4 ciclos para la rutina de delay
;modulo para el timer
;bitrTMOD= (bitwidth+7) & FFFC -1, minimo 55
bitrTMOD ds 2 ;
;delay variable= delay total - delay fijo (56 ciclos)
;bitrDELAY= (bitrTMOD+1)/4 - 7 (ajustado para la rutina de delay X:A)
bitrDELAY ds 2 ;
rxdata ds 1 ;respuesta recibida
tempo ds 1 ;temporal
data1 ds 1 ;dato de comando
data2 ds 1 ;dato de comando
numbytes ds 1 ;1) num bytes
databuf ds !22 ;buffer para cargar en RAM
;2) direccion HI y LOW
;3) datos (1..20)
rxchksum ds 1 ;4) checksum recibido
checksum ds 1 ;checksum generado (00=>OK)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -