AYUDA PIC16F88

messi233

Bovino maduro
#1
Hola denuevo hermanos..

estoye empezando con el tema de los PICs y estoy utilizando el PIC16F88
.he aki una pregunta facilita para los q saben.

.cuando quiero declarar una variable en un determinado programa he visto en algunos q hacen esto

primer caso:

CBLOCK 0x20
VARIABLE1
VARIABLE2
VARIABLE3
.
.
.
VARIABLEN
ENDC

se que esto es un bloke de variables q empieza a partir de 0x20

pero tambien he visto que declarn variables de otra manera como por ejemplo:

segundo caso:

Contador1 equ 0x0C
Contador2 equ 0x0D
Contador3 equ 0x0E

ok mis preguntas son las siguientes (no se si son tontas pero ahi les va)

1. En que caso utilizo una formay en que caso utilizo la otra forma de declaración?

2 .En el primer caso (el bloke) veo q la variable empieza a partir de 0x20, pero hasta donde se extiende o sea cual es el limite para direccionar la variable?

3. para el caso 2 el ejemplo del contador , como yo se en que direccion debo crear la variable , en el ejemplo aparece 0x0C y cual es el limite.

4. De qué tamaño es mi variable???

5. como ven estoy algo enrredado en la organizacion de la memoria he oido de memoria de datos y memoria de programas, pienso yo que la memoria de programa es donde se almacena todo el codigo q escribo..pero la de datos?? en q caso se usa y como accedo a ella?

6. en las declaraciones de variable q hice en los ejemplos en q memoria se encuentran??

7. la ultima pregunta y no menos importante para los que usan mplab: al momento de depurar puedo ver como se ven afectados mis registros con la opcion WATCH....sin embargo no c como hago para ver como se va afectando las variables que he creado....como hago para ver el contenido de mi variable al momento de la depuracion???..

les puedo pedir el favor de que no me manden bucar en google porq ya lo he hecho...si pido esta ayuda por este medio es porq necesito una respuesta rapida,,,y para que un alma caritativa que sepa sobre el tema me pueda enseñar la luz.. si me aclaran todas las dudas estare muy agradecido gracias, y disculpa a los q les pueda molestar este post. ya q no aporta nada para ellos.

P:eek: estoy harto de ver el bendito datasheet


saludos!!!!
 

rleonmx

Bovino Milenario
#2
1. En que caso utilizo una formay en que caso utilizo la otra forma de declaración?
es al gusto del programador,
2 .En el primer caso (el bloke) veo q la variable empieza a partir de 0x20, pero hasta donde se extiende o sea cual es el limite para direccionar la variable?
la hoja de datos del cada pic te dice que rango de ram puedes usar
3. para el caso 2 el ejemplo del contador , como yo se en que direccion debo crear la variable , en el ejemplo aparece 0x0C y cual es el limite.
misma respuesta que la anterior
4. De qué tamaño es mi variable???
misma respuesta que la anterior, cada familia es de 8, 16 o 32 bits, la pagina de microchip te dice a que familia corresponde cada integrado
5. como ven estoy algo enrredado en la organizacion de la memoria he oido de memoria de datos y memoria de programas, pienso yo que la memoria de programa es donde se almacena todo el codigo q escribo..pero la de datos?? en q caso se usa y como accedo a ella?
la acabas de usar en las preguntas 1, 2 y 3
6. en las declaraciones de variable q hice en los ejemplos en q memoria se encuentran??
acabas de responderte la pregunta anterior,

P:eek: estoy harto de ver el bendito datasheet
ps que mal por que ahi vienen todas las respuestas
 

car_025

Bovino Milenario
#3
es al gusto del programador,
la hoja de datos del cada pic te dice que rango de ram puedes usar
misma respuesta que la anterior
misma respuesta que la anterior, cada familia es de 8, 16 o 32 bits, la pagina de microchip te dice a que familia corresponde cada integrado

la acabas de usar en las preguntas 1, 2 y 3
acabas de responderte la pregunta anterior,

ps que mal por que ahi vienen todas las respuestas
+1

para complementar lo q dijo, bajate un mapeado de memoria o en las hojas tecnicas del pic te sale el banco 1 y el banco 2 con cada una de las ubicaciones asi le entenderas hasta donde llegan los registros de declaraciones y donde empiesan ;)
 

gvz

Bovino adicto
#5
con cblock, la ventaja eske no tienez ke declarar de una por una pero te las pone continuas a partir de donde las pongas como 0x020 o 0x00C y van a yegar asta donde termine tu numero de variables en forma consekutiva contando en hex, y dependiendo del numero de GPRs de tu pic especifico, y con equ puedes apuntar a cualquier banco o numero de memoria al GPR que quieras...

esas variables estan en la misma memoria en donde estar tus FSR, como trisa, o porta, etc,, y tu codigo si se graba en otra, que es memo de program, en algunos si es escribible, y con la eeprom ya son todas,,,,, accedes a ellas con un simple movf 0x020,1, y se va tu carga a w.

porke acceder a la eeprom es un tantito mas complicado
 
Arriba