TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: ascii en 17 de Mayo de 2007, 01:45:22
-
Después de estar jugando algunos días con los microcontroladores de freescale (ex-motorola), he conseguido hacer algunas cosas no tan trascendentales pero es posible que a algunas personas sea de utilidad y mas aun por la poca información que existen de estos micros, el primer ejemplo se trata de como utilizar el conversor análogo digital que traen estos micros. Básicamente lo que hace el programa es leer el dato análogo desde el pin ptda0 y enviar esta conversion a el puerto b, El microcontrolador corresponde al 68hc908jk1ecpe. Aquí dejo el código y espero que sea de utilidad.
RAMStart EQU $0080
ROMStart EQU $EC00
VectorStart EQU $FFFE
$Include '\pemicro\ics08jkz\jk1regs.inc
org ROMStart
COMIENZO:
rsp
clrx
lda #%00010001
sta CONFIG1
LDA #$FE
STA DDRD
LDA #$FF
STA DDRB
LDA #%00101011
STA ADSCR
Inicio:
BSR Cad
STA PORTB
JMP Inicio
Cad:
BRCLR COCO.,ADSCR,Cad ;conversión completa y para que se estabilice
LDA ADR ;Borra el bit COCO leyendo ADR
BRCLR COCO.,ADSCR,Cad ;este tiempo toma la medida real
;MOV #%00011111,ADSCR ;Después se apaga el ADC
LDA ADR ;Recupera el resultado del ADC
RTS ;vuelve con el resultado en el acumulador
org VectorStart
dw COMIENZO ; Vector de Reset (Comienzo del programa)
-
Que bueno ascii que empieces aportar tus cosas de los micros freecale, para reforzar este mensaje envio otro codigo hecho en C y en asm que hace lo mismo pero con el micro JK3
lo envio como adjunto. buen provecho.
-
Que programa ocupas....codewarrior??, tengo entendido que hay otro programa, en este momento no recuerdo bien....
pd: codewarrior ahora esta para linux :mrgreen:
-
SI yo uso el codewarrior ya que el processor expert es de gran ayuda cuando necesitas hacer el código rápido y si tener que leerte tanto el data para los registros.
Creo que no esta para linux, o por lo menos es lo que pude ver en la pagina de Freescale, se de un software llamado SDCC Herramienta libre y multiplataforma (disponible para Windows, Linux, MAC, etc), distribuida bajo licencia GPL es un compilador de C para microcontroladores de 8 bits, entre ellos el 68hc08, pero también es válido para los PIC, 8051, Z80, y algunos otros. No lo he usado pero si te interesa lo puedes descargar de http://sdcc.sourceforge.net/ (http://sdcc.sourceforge.net/).
Mi imagino de pronto debas tener dos sistemas operativos osea Windows y una distribución Linux, si es asi usa el codewarrior para Windows la verdad que facilita mucho el trabajo.
-
Asi es tengo win y ubuntu feisty, lo que menos ocupo es win pero de pronto en pronto ingreso para programar los micros, el programa que ocupo es el de la pagina www.pemicro.com pero solo permite programar en asembler, haber si me bajo el codewarrior y me hechas una mano para empezar a programar en c, ya que en eso soy medio nulo :D
-
Hola todos !!!
Adjunto otro ejemplo sobre el uso del conversor escrito en C con el Code Warrior. (Funcionaaaaaaa :-/)
Saludos
Facundo
-
Mel olvidé...
Los dos programitas para la pc los bajé de aqui:
www.firtec.com.ar/archivos/Termo_Vol_Serial.zip
Saludos
Facundo
-
Si pues bajate el codewarrior y repasa el lenguaje C enfocado al PC que te va a servir de mucho por ejemplo usa el DEV C++ y practicas la programación en C, lo bueno seria que empieces con el codewarrior eso si para que te familiarices con el software pues porque me parece que este es bastante mejor.
-
Lo único que programado en c ha sido para aplicaciones en pc....en esos tiempos TURBO C... te suena??? ajjjaja :D .... por lo otro veo que esto esta agarrando brillo....gracias facundo por el post... espero que continué y podamos seguir avanzando.
fa61an le has echando un ojo al jb8 y su aplicación HID, yo la probé y anda de pelos.
-
les envio el codigo para lograr una recepcion serila y enviarla por puerto serial usando interrupciones
$include 'gpgtregs.inc'
FLASH EQU $8000
RAM EQU $0040
VectorStart EQU $FFDC
org RAM
p1 ds 1
p2 ds 1
p3 ds 1
m3 ds 1
m2 ds 1
m1 ds 1
del1 DS 1
del DS 1
del0 DS 1
r1 ds 1
r2 ds 1
r3 ds 1
r4 ds 1
war ds 1
org FLASH
$include 'lcd1.inc'
confini:
bset 0,CONFIG1 ;deshabilita el cop
rsp ;RESETEO DEL SP
cli ;permite que ocurra una interrupcion
clc ;inicia en 0 el carry
clra ;limpia el acumulador
clr r1
CLI ; Enable interrupts
MOV #$01,CONFIG2
mov #%11111111,DDRA ;se configura el PORT C 1 como salida
clr PTA
mov #%11111111,DDRC
clr PTB
mov #%00000000,DDRB
CLR PTC
jsr delay15m
jsr initializacion
CLR SCC1 ; Disable the SCI module
LDA SCS1 ; Dummy read of the SCS1 registr to clear flags
LDA SCS2 ; Dummy read of the SCS2 registr to clear flags
LDA SCDR ; Dummy read of the SCDR registr to clear flags
CLR SCC3
ldx #$54
MOV #$01,SCBR
MOV #$40,SCC1
MOV #$2c,SCC2
ciclo:
nop
jmp ciclo
wait
ver:
BSET 0,PTC
sta PTA
JSR enable
CLR PTC
rts
**************************************************************
* DUMMY_ISR - Dummy Interrupt Service Routine. *
* Just does a return from interrupt. *
**************************************************************
dummy_isr:
rti ; return
reception:
ldx scdr
brset 0,SCS2,*
bclr 5,scs1
LDA SCC1
LDA SCS1
LDA SCS2
LDA SCDR
STA SCDR
brset 6,SCS1,*
RTI
RTI
**************************************************************
* Vectors - Timer Interrupt Service Routine. *
* after a RESET. *
**************************************************************
org VectorStart
dw dummy_isr ; Time Base Vector
dw dummy_isr ; ADC Conversion Complete
dw dummy_isr ; Keyboard Vector
dw dummy_isr ; SCI Transmit Vector
dw reception ; SCI Receive Vector
dw dummy_isr ; SCI Error Vector
dw dummy_isr ; SPI Transmit Vector
dw dummy_isr ; SPI Receive Vector
dw dummy_isr ; TIM2 Overflow Vector
dw dummy_isr ; TIM2 Channel 1 Vector
dw dummy_isr ; TIM2 Channel 0 Vector
dw dummy_isr ; TIM1 Overflow Vector
dw dummy_isr ; TIM1 Channel 1 Vector
dw dummy_isr ; TIM1 Channel 0 Vector
dw dummy_isr ; ICG/CGM Vector
dw dummy_isr ; ~IRQ1 Vector
dw dummy_isr ; SWI Vector
dw confini ; Reset Vector
-
que pena contestar tan tarde pero no me había llegado notificación al correo de nuevos mensajes sobre este hilo de temas, y respecto a tu pregunta.
<<jb8 y su aplicación HID, >> no lo he usado, ni muchos menos se que significa HID seria bueno que comentaras lo que hiciste..