Bueno informaticos uno k necesita ayuda....

Publicado:
Jue Mar 26, 2009 1:33 am
por pablo_oso
Hola os comento antes de nada.... tengo un bonito microprocesador el HC12 mas concretamente el PK E128hc12 de Softec... el mismo que utuliza nuestro C4 para controlar la pantalla central del C4 la de la velocidad....
Pero mi problema es k tengo practicas con el chisme este y madre k chungas son..... alguien tiene idea de programar en emsamblador.... o en el HC12???
Gracias!!!!

Publicado:
Jue Mar 26, 2009 13:34 pm
por bender
Yo tengo nociones de lenguaje ensamblador para x.86 (el típico procesador de PC).
Si tienes alguna duda, tal vez te la pueda resolver por aqui (o por privi, dudo que otros foreros esten interesados en apredender ensamblador).

Publicado:
Jue Mar 26, 2009 20:31 pm
por elde
en su dia hice algo de asm para pics de microchip, aunke poco te podria ayudar.
aunke supongo ke ya lo tendras claro, ke primero datashseet y un compilador adecuado
de todas formas pegale un ojo a esto espanol.geocities.com/dan_mld2003/apuntes/micro_hc12.pdf
suerte, ke la necesitas


Publicado:
Vie Mar 27, 2009 1:28 am
por pablo_oso
gracias... bueno os pondre mis dudas por aki..... haber k apsa....

Publicado:
Lun Mar 30, 2009 0:54 am
por pablo_oso
; export symbols
XDEF Entry ; export 'Entry' symbol
ABSENTRY Entry ; for absolute assembly: mark this as application entry point
; include derivative specific macros
RAMStart EQU $0400
ROMStart EQU $4000 ; absolute address to place my code/constant data
PTT EQU $0240
DDRT EQU $0242
STACK EQU $1FFF
ADlo EQU $0271
DDRADldo EQU $0275
PERADlo EQU $0279
ATDAIlen EQU $008D
TSCR2 EQU $004D
TOF EQU $004F
TSCR1 EQU $0046
; variable/data section
ORG RAMStart
matriz dc.b $80, $40, $20, $10, $08, $04, $02, $01, $80, $40, $20, $10, $08, $04, $02, $01
ai dc.b 0, 7, 1, 14, 10, 5, 3, 4
ticksacontar dc.b 2
tickscontados dc.b 0
flag dc.b 0
; code section
ORG ROMStart
Entry:
LDAA #0
STAA DDRADldo
LDAA #$FF
STAA PERADlo
LDAA #$FF
STAA ATDAIlen
LDS #STACK
LDAB #$FF
STAB DDRT
LDY #matriz
LDX #ai
LDAB #0
DEFECTO: LDAA #1
STAA PTT
BRCLR ADlo,%00010000,COLUMNAS
BRCLR ADlo,%00100000, JSRFILAS
JMP DEFECTO
JSRFILAS: JSR Filas
COLUMNAS: LDAA #2
STAA PTT
BRCLR ADlo,%00010000,INDEXADO
BRCLR ADlo,%00100000, JSRCOLUM
JMP COLUMNAS
JSRCOLUM: LDAB #0
JSR Colum
INDEXADO: LDAA #4
STAA PTT
BRCLR ADlo,%00010000,DEFECTO
BRCLR ADlo,%00100000, JSRIND
JMP INDEXADO
JSRIND: JSR Indexado
JMP DEFECTO
Indexado:
BSET TOF, %10000000
BSET TSCR2, %10000101; prescaler y TOI
BSET TSCR1, %10000000; TEN
CLI
I1: LDAA flag ; miramos el flag para ver si
CMPA #1 ; ha pasado el tiempo que queremos esperar
BNE I1 ;
LDAA #0 ;
STAA flag ;
LDAB 0,X
LDAA B,Y
STAA PTT
INX
CPX #$418
BNE Indexado
LDY #matriz
LDX #ai
LDAB #0
JMP Indexado
Filas:
BSET TOF, #%10000000
BSET TSCR2, #%10000101; prescaler y TOI
BSET TSCR1, #%10000000; TEN
CLI
F1: LDAA flag ; miramos el flag para ver si
CMPA #1 ; ha pasado el tiempo que queremos esperar
BNE F1 ;
LDAA #0 ;
STAA flag ;
LDAA 0,Y
INY
INCB
STAA PTT
CMPB #16
BNE Filas
LDY #matriz
LDX #ai
LDAB #0
JMP Filas
Colum:
BSET TOF, %10000000
BSET TSCR2, %10000101; prescaler y toi
BSET TSCR1, %10000000; TEN
CLI
C1: LDAA flag ; miramos el flag para ver si
CMPA #1 ; ha pasado el tiempo que queremos esperar
BNE C1 ;
LDAA #0 ;
STAA flag ;
LDAA B,Y
STAA PTT
ADDB #4
CMPB #16
BNE Colum
INY
LDAB #0
CPY #$404
BNE Colum
LDY #matriz
LDX #ai
LDAB #0
JMP Colum
RSI_timer:
BSET TOF, %10000000;
PSHA
PSHB
LDAA tickscontados
INCA
STAA tickscontados
LDAB ticksacontar
CMPB tickscontados
BNE no
LDAA #1
STAA flag
LDAA #0
STAA tickscontados
no: PULA
PULB
RTI
;**************************************************************
;* Interrupt Vectors *
;**************************************************************
ORG $FFFE
DC.W Entry ; Reset Vector
ORG $FFDE
fdb RSI_timer;

Publicado:
Lun Mar 30, 2009 0:56 am
por pablo_oso
Bueno este el codigo.... no consigo hacer funcionar la maldita interrupcion del timer....
Se trata k el timer cuando una vuelta de reloj 16Mhz con preescaler a 64 produzca uan interrupcion y active una señal....
Pero nos oy capaz....