Autor Tema: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)  (Leído 27939 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #30 en: 05 de Septiembre de 2007, 23:02:10 »
Mmm pero eso implicaría que el compilador haga 8 rotaciones???

Voy a mirar el código asm que genera. Me muero de la bronca si genera 8 lineas con rotaciones! en assembler son solamente dos...

Gracias!!!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #31 en: 05 de Septiembre de 2007, 23:07:47 »


      existe la funcion MAKE8( ); pero yo no la he implementado y no se cuantas lineas ocupe, fijate en la ayuda de CCS ponen este ejemplo.


Examples:
 int32 x;
 int y;
 y = make8(x,3);  // Gets MSB of x

         suerte.
 

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #32 en: 06 de Septiembre de 2007, 01:59:58 »
typedef struct {
        byte byte0;
        byte byte1;
} WORD;

WORD mivar;

alta=mivar.byte1;
baja=mivar.byte0;

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #33 en: 06 de Septiembre de 2007, 02:50:12 »
Gracias Rulo!

Si, espectacular, creo que con el MAKE8 y MAKE16 estoy hecho segun lo que lei en la ayuda.



Hola manolo!

Pos ahorita yo lo tenia como array:

int8 mivar[2];

lo que sería muy similar a lo que planteas.

Lo que no me queda claro es si creando una estructura de ese tipo, puedo referirme a "mivar" como una variable de 16 bits, o tendre que referirme siempre a su byte bajo(byte0) y alto(byte1).

Voy a probar...mañana cuento que pasó.

Salu2!!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #34 en: 06 de Septiembre de 2007, 02:59:53 »
Sí que puedes, y si no te funciona directamente, esto seguro que funciona:

int16 mivar1;
WORD mivar2;

mivar1=(int16)mivar2;

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #35 en: 06 de Septiembre de 2007, 15:10:02 »
Gracias manolo!

Funciona a la perfección, excepto cuando quiero someter sus 16bits a operadores lógicos. Allí el compilador me arroja error. Igual está de luuujooo!!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #36 en: 29 de Octubre de 2007, 15:35:07 »
Hola!
Retomo el tema.

Usando
#rom 0x2100 = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }

O lineas parecidas todo funciona bien, pero cuando quiero compilar lo siguiente:

void main(void)
{
   //
   //------------------------------------------------------------------------------
   #rom 0x2100 = {0x00}; // Demora (1/10s) entre cada paso del Prog.1
   // 64 valores del programa 1
   #rom 0x2101 = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }
   #rom 0x2109 = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }
   #rom 0x210A = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }
   #rom 0x2112 = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }
   #rom 0x211A = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }
   #rom 0x2122 = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }
   #rom 0x212A = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }
   #rom 0x2132 = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }


Me da errores en todas las lineas debajo del comentario "//// 64 valores del programa 1". Los errores son:

Error 51: A numeric expression must appear here.

Y por lo que veo, SON expresiones numericas.

¿Que me esta pasando? :(

Saludos!

"
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #37 en: 29 de Octubre de 2007, 15:47:34 »
¿No será que te sobra un ";"?

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #38 en: 29 de Octubre de 2007, 15:59:01 »
Por supuesto que le sobra el ";"   :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #39 en: 29 de Octubre de 2007, 16:30:09 »
Efectivamente...sobraba el ";". Ahora....que atorrante darme error en TODAS las lineas siguientes en lugar de venir civilizadamente y decirme "Ariel, fijate con atencion en la linea XXX, hay un ; de mas....¿lo remuevo por ti?".... :D :D

GRACIAS!!!!!!!!!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #40 en: 29 de Octubre de 2007, 16:34:44 »
En ese caso seria otro BUG del CCS!! :D
Te imaginas hablando en español al CCS !! :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #41 en: 29 de Octubre de 2007, 16:36:55 »
No me hables de bugs....que no me he topado con ninguno. Debe ser por que estoy usando cosas SUPER-BASICAS.

Espero seguir asi. :)

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #42 en: 29 de Octubre de 2007, 19:05:46 »
si Ariel, hay veces que cometemos errores de sintaxis y el compilador nos tira un error que en realidad no sabemos donde está o de que se trata, me ha pasado muchas veces y sobre todo cuando se usa codigos en otros archivos .h (me recuerda los cuentos de la cripta sobre el cobol  :shock:

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #43 en: 29 de Octubre de 2007, 23:11:56 »
Igual si haces click sobre las lineas de errores o advertencias te llavara a la linea de programa donde se encuentra el error... :lol: 8)
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #44 en: 30 de Octubre de 2007, 18:47:17 »
Hola amigos!
Ya se que me pongo pesado...pero tengo una bolsa llena de dudas y algunas no las puedo resolver sin su sapiencia :)


Sigo jugando con la EEPROM internar de un 16F628A. Segun la datasheet, son 128 bytes ordenados desde 0x00 a 0x7F. Intento leer una serie de valores de la eeprom, y sacarlos por el puerto B, pero....el puerto muestra "basura". Evidentemente estoy apuntando para cualquier lado.

¿Sera que la eeprom efectivamente esta a partir de 0x2100 ?

¿Eso significa que la variable que uso para recorrer la memoria tiene que ser de 16 bits de ancho?

Gracias por la paciencia...
Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert