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

Temas similares

12/08/2008 #1

Avatar de pepechip

Simplificar la programacion en asembler
He visto en un programa en asembler estas directivas, y me ha llamado la atensión, ya que yo solamente utilizaba "DEFINE" para dar otro nombre a los puertos de entrada y salida.
Con esta forma de estructurar el programa se puede simplificar el trabajo para elaborar algun programa.

Código:
#DEFINE ON1	BSF	PORTB,0
#DEFINE ON2	BSF	PORTB,1
#DEFINE ON3	BSF	PORTB,2
#DEFINE ON4	BSF	PORTB,3
#DEFINE ON5	BSF	PORTB,4
#DEFINE ON6	BSF	PORTB,5
#DEFINE ON7	BSF	PORTB,6
#DEFINE ON8	BSF	PORTB,7
#DEFINE ON9	BSF	PORTA,0
#DEFINE ON10	BSF	PORTA,1
#DEFINE ON11	BSF	PORTA,2
#DEFINE ON12	BSF	PORTA,3
#DEFINE ON13	BSF	PORTA,4
#DEFINE ONTODO	CALL	ENCIE
12/08/2008 #2

Avatar de Meta

Eso siempre ha estado y lo que más me sorprendió es el último.

#DEFINE ONTODO CALL ENCIE

Es bueno comentar estas curiosidades para aprender.
12/08/2008 #3
Moderador

Avatar de Chico3001

Incluso tambien puedes cargar esa lista de definiciones en un archivo .H y usar distintas configuraciones de pines para distintos hardwares sin necesidad de modificar el programa

Lo digo por que una vez me encontre un kit de experimentacion que tenia los leds negados (encendian con un 0) y en el equipo final los encendiamos con un 1, asi que eso fue lo que hicimos... cuando necesitabamos probar en el kit usabamos el .h con las definiciones del kit y cuando probabamos en el equipo final solo cambiabamos el .h por otro y recompilabamos..
12/08/2008 #4

Avatar de Meta

Ahora me está dando por ver directivas que no conozco que están en las ayudas del MPLAB.
12/08/2008 #5
Moderador

Avatar de Chico3001

jajajaja ... si.. yo tambien pase por esa etapa hace algun tiempo....
13/08/2008 #6


Directiva CBLOCK
Creo que esto es conocido, pero he visto mucho código que no lo usa.

Logicamente hay que usar MPLAB o un ensamblador que soporte tal directiva.

La directiva CBLOCK nos ayuda a definir un bloque de constantes

es decir en lugar de hacer:
Código:
nrator        equ    0x20
nratorM     equ    0x21
nratorL      equ   0x22
hacemos:

Código:
	CBLOCK	0x20				
	nratorH,nratorM,nratorL
	denomH,denomM,denomL
	remainH,remainM,remainL
	BCount,shiftM,shiftL,shiftH
	Temp
	ENDC
El 0x20 indica el comienzo de la RAM del usuario.
0x0C para el 16f84
0x20 para el 16f628, 16f877

Resto consultar hoja de datos.
13/08/2008 #7

Avatar de pepechip

La directiva CBLOCK aparte de simplificar la programacion es recomendable su utilizacion cuando un programa se realiza para utilizarlo en diferentes micros, ya que con solo definir la primera posicion de la RAN es suficiente.
13/08/2008 #8

Avatar de Meta

CBLOCK 0x20
Variable. ; También se usa en el 16F88
ENDC

Estas cosas también se usa y se explica en el www.pic16f84a.com , me traba la directiva MACROS, que dice el libro que es potente pero me traba mucho la cabeza.
13/08/2008 #9


Los Macros los expliqué una vez aqui: Usando Macros.

Checalo, lo expliqué de la mejor manera que pude
13/08/2008 #10

Avatar de Meta

pic-man dijo:
Los Macros los expliqué una vez aqui: Usando Macros.

Checalo, lo expliqué de la mejor manera que pude
Gracias, claro que lo miraré.


EDIT:
He encontrado esto y ya no saben que inventar.

YouTube - 水の落ちる絵
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.