Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

08/11/2009 #1


Duda con codewarrior y HC08
Mi duda es la siguiente:

Estoy programando en el codewarrior pero ya me he gastado las tres variables que vienen por default: H,X y A... hay manera de delcarar mas variables???
10/11/2009 #2


Respuesta: Duda con codewarrior y HC08
Si no mal recuerdo se definen en el encabezado y dependen del tipo de variable..

;************************************************* *************
;* This stationery is meant to serve as the framework for a *
;* user application. For a more comprehensive program that *
;* demonstrates the more advanced functionality of this *
;* processor, please see the demonstration applications *
;* located in the examples subdirectory of the *
;* Metrowerks Codewarrior for the HC08 Program directory *
;************************************************* *************

; export symbols
XDEF Entry, main
; we use export 'Entry' as symbol. This allows us to
; reference 'Entry' either in the linker .prm file
; or from C/C++ later on

; include derivative specific macros
Include 'gp32_registers.inc'

; variable/data section
MY_ZEROPAGE: SECTION SHORT
; Insert here your data definition. For demonstration, temp_byte is used.
STATUS ds.b 1 //
CONT DS.b 1 // son dos variables definidas por el usuario es algo así como define sentence byte 1 -- variables de 255 espacios..

otro ejemplo
; Insert here your data definition. For demonstration, temp_byte is used.
temp_byte ds.b 1

Es así la explicación si no me acuerdo mal., pero esa es la forma...

22/11/2009 #3


Respuesta: Duda con codewarrior y HC08
aaa ok gracias, pero ahora tengo otra duda...
estoy checando el programa de un amigo y dice lo siguiente:

LDA $102
DECA
STA $102
BNE LAZO_A

primero carga en A el valor guardado en la direccion $102
luego decrementa A
despues guarda el valor de A en $102
¿Qué hace el BNE?, según el libro BNE "compara y salta si no es igual", mi pregunta es igual a que???

y otra duda:

LAZO_2

LDA CONT0
LAZO_1
DBNZA LAZO_1

lo que pasa aqui es que en A guarda el valor de CONT0
en el siguiente renglón qué hace DBNZA???
22/11/2009 #4


Respuesta: Duda con codewarrior y HC08
Hola, te recomiendo que te consigas el manual del CPu08
http://www.freescale.com/files/micro...al/CPU08RM.pdf
En ese manual, están los set de instrucciones y códigos de ejemplo.

DBNZ Decrement and Branch if Not Zero DBNZ
Este dbnz decrementa y luego hace la comparación.
BNE Branch if Not Equal BNE
Este compara 2 datos, lo que se carga en A y otra variable y si no son igaules salta a una subrutina...


¿Qué estás haciendo?
23/11/2009 #5


Respuesta: Duda con codewarrior y HC08
Estoy haciendo una secuencia de 8 leds, lo que deben hacer es prender y apagar uno después de otro, sólo que tanto el tiempo de encendido y apagado deben ser regulables (de .5 a 3 seg con incrementos de .5 seg), e independientes...
25/11/2009 #6


Respuesta: Duda con codewarrior y HC08
Hola, cuando dices regulables.... esto con qué lo modificas; con un potenciometro en el Adc del micro o con interruptores?

Creo que podrías montar retardos e irlos llamando, con contadores, para tu trabajo... el mas facil es el nop... y entonces hacer un contador que haga noP n número de veces dependiendo del cristal que utilices..

compa: sta cont;
bne 0, retardo; //branc if no equal si no es o brinca a subr retardo
RTS; // regresa al programa principal

retardo: dec cont; // decrementa contador
nop // no operación..
bsr compa; // regresa a hacer otro ciclo de retardo

creo que podría ser una forma, entonces cont le asignas un valor afuera de esa subrutina y le pones un número conforme al número de ciclos que necesites, no estoy muy seguro de los comandos pero yo intentaría por ese lado...

Te parece?

// Yo trabajé con esos hace años y medio me acuerdo de cositas, pero creo que para lo tuyo puedes aplicar eso //
Archivos Adjuntos
Tipo de Archivo: pdf Tbase_en_los_908.pdf (124,9 KB (Kilobytes), 95 visitas)
01/03/2017 #7


;Que hace BNE?

LDA $102
DECA
STA $102 ; Aqui hay un error.... has cambiado el bit z del SR status register.
BNE LAZO_A

======================
;Lo correcto seria asi:
LDA $102
DECA
BNE LAZO_A ; si al decrementar el registro A y este aun no llega ha ser '0'. LAZO_A entra en buckle de repeticcion.
;Se rompe el buckle de repeticcion o loop.
======================
LAZO_A: STA $102 ; Entonces "LAZO_A" guarda el contenido del registro 'A' en la memoria.
01/03/2017 #8

Avatar de Scooter

Annie dijo: Ver Mensaje
Mi duda es la siguiente:

Estoy programando en el codewarrior pero ya me he gastado las tres variables que vienen por default: H,X y A... hay manera de delcarar mas variables???
Creo que confundas variables con registros.
Variables puedes usar tantas como ram tengas. No es aconsejable usar registros como variables porque se agotan rápido y te ralentizan el resto de tareas.

Edito, reflote del 2009

---------- Actualizado después de 2 minutos ----------

jossev dijo: Ver Mensaje
;Que hace BNE?

LDA $102
DECA
STA $102 ; Aqui hay un error.... has cambiado el bit z del SR status register.
BNE LAZO_A

======================
;Lo correcto seria asi:
LDA $102
DECA
BNE LAZO_A ; si al decrementar el registro A y este aun no llega ha ser '0'. LAZO_A entra en buckle de repeticcion.
;Se rompe el buckle de repeticcion o loop.
======================
LAZO_A: STA $102 ; Entonces "LAZO_A" guarda el contenido del registro 'A' en la memoria.

BNE Branch Not Equal

Salta si no es igual

Si preguntas eso es que ni has leído el manual del procesador, vamos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.