Autor Tema: modificador de SERIN2  (Leído 3780 veces)

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

Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
modificador de SERIN2
« en: 21 de Diciembre de 2004, 11:46:00 »
De acuerdo al manual del pbp la sentencia i2cread soporta todos los qualificadores del serin2 pero si yo escribo:

i2cread data,clock,control,addr,[str string20]

(leo de la mem un string de hasta 20 char pero si encuentro un val = 0 me detengo)
la sentencia de arriba no compila sin embargo para serin2 si;
por que?
alguien sabe?

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #1 en: 21 de Diciembre de 2004, 11:52:00 »
En pbp no veo que soporte lo que comentas pana:
I2CREAD DataPin ,ClockPin,Control,{Address,}
http://www.todopic.com.ar/pbp_sp.html#i2cread <---I2Cread
serin si:
SERIN Pin,Mode, {Timeout,Label,}{[Qual...],} {Item...}
http://www.todopic.com.ar/pbp_sp.html#serin

o que compilador usas?

Referente a lo de tiempo de escritura, no se si el comando(en pbp) lo maneje directo, pero como solo maneja a lo mucho  words, puedes poner un pequeño delay despues de ada escritiura antes de incrementar la direccion. es decir que escribirias 2 caracteres de una vez .
Salu2

Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
RE: modificador de SERIN2
« Respuesta #2 en: 21 de Diciembre de 2004, 13:12:00 »
ok de acuerdo
el unico modificador que acepta es str pero por que no compila
al usarlo con una caracter de paro por ejemplo CR

i2cread data,clock,control,addr,[str2013]


Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #3 en: 21 de Diciembre de 2004, 16:15:00 »
Si el manual lo dice, deberia de funcionar como lo tienes,
Otra cosa como definiste el array? arr var byte[10] ?(seguro que cabe todo lo que etas leyendo? )Que error te da al compilar? y escribio bien con I2cwrite??
El formato de escritura:
        a var byte[8]
        I2CWRITE PORTC.4,PORTC.3,$a0,0,[STR a8]
Podrias tambien cambiarle de nombre al array(string) por strin por ejemplo.. puede ser que el nombre  lo tenga apartado para otras funciones. en proton no te acepta string, por eso en el ejemplo puse strin para que no marque error el compilador
Salu2

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: modificador de SERIN2
« Respuesta #4 en: 21 de Diciembre de 2004, 17:18:00 »
Yo he estado leyendo el manual y no he encontrado referenciado el segundo backslash.  Para mi que eso no lo soporta aunque nunca lo he usado.

Saludos
Ricky

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #5 en: 21 de Diciembre de 2004, 17:48:00 »
Que onda pana Ricky ,
De hecho si viene pero es para SERIN2 es lo que le comentaba a  hexmotion, pero el dice que en manual viene que esos modificadores si se pueden usar en i2c.. pero por mas que busque ese segundo modificador(/c) no lo encontre. Llorando
Aqui esta otro manual en donde viene mas claro. en el del pana TODOPIC tambien viene pero no se nota el segundo /c.
http://microengineeringlabs.com/resources/pbpmanual/5_61-5_64.htm <--Ingles
http://www.todopic.com.ar/pbp_sp.html#serin2 <-- español
solo viene asi:
STR ArrayVar{}   -Recibe una cadena de n caracteres ,opcionalmente terminada en el carácter c
Tal ves le falto poner el parentecis del ultimo control que es opcional:
str var13() o corchetes.

De todas formas con proton si se puede(para i2c) no veo por que en pbp no se pueda... jejejeje o sera que no?? ....

Un abrazo pana Ricky

Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
RE: modificador de SERIN2
« Respuesta #6 en: 22 de Diciembre de 2004, 09:42:00 »
No he probado la instruccion i2cwrite, lo que he hecho es generar una imagen hex con un ensmblador de 8bit y grabarla en la eeprom, algo como

db "message number one",0
db "messge number two",0         ; 0= end of string


luego los defines serian

string var byte[20]
j var byte
control = $A0
addr  var word " ya que es una 24f256
leerstring:

       i2cread dat,clock,control,addr,[str string20]
" termina la inst.
cuando leo 20 char o encuentro "0", esto me permite leer strings de
diferentes tamaños






Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
RE: modificador de SERIN2
« Respuesta #7 en: 22 de Diciembre de 2004, 09:45:00 »
el error al compilar es
sintax error on line (X)          "]" expected
deveras: donde puedo encontrar info del proton (Iam newbie)

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #8 en: 22 de Diciembre de 2004, 10:06:00 »
Hexmotion ya probaste lo que te sugeri?
 i2cread dat,clock,control,addr,[str string20[] ]
o
 i2cread dat,clock,control,addr,[str string20()]
o
 i2cread dat,clock,control,addr,[str string20,()]
o
 i2cread dat,clock,control,addr,[str string20,]
o
 i2cread dat,clock,control,addr,[str string20,]
.... en fin..puedes hacer pruebas con llaves,corchetes y parentesis.. haber cual es el verdadero formato, creo que con la , deberia funcionar ya que trabajaria como caracter NULL el ultimo slash. Prueba, que si dice en el manual que se puede ,se puede.
No olvides el FORMATO real:
STR ArrayVar
{c}  Receive string of n characters optionally ended in character c
                       Recive cadena de n caracteres Opcionalmente terminados en el caracter c

Salu2

Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
RE: modificador de SERIN2
« Respuesta #9 en: 22 de Diciembre de 2004, 13:53:00 »
no funciona con ninguno de ellos ya probe de todo, lo que pienso hacer mejor es leer char por char e ir armando un array probanda cada byte para encontrar el fin de linea no crees?

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #10 en: 22 de Diciembre de 2004, 14:59:00 »
Me parece PERFECTA tu idea hexmotion, AHORA ya sabes que no admite de esta forma el comando I2C,..y la verdad nunca encontre que se pudiera usar este modificador para I2C.

Salu2

Desconectado hexmotion

  • PIC10
  • *
  • Mensajes: 22
RE: modificador de SERIN2
« Respuesta #11 en: 22 de Diciembre de 2004, 18:08:00 »
de hecho el unico modificador  que si acepta es str ya que puedo
leer de golpe tantos datos como yo deseo pero nada mas, lo que queria era poner un caracter de paro, de todas maneras gracias... LagerEnfurruñado

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: modificador de SERIN2
« Respuesta #12 en: 22 de Diciembre de 2004, 19:33:00 »
Hexmotion, si acepta el str solo tendrias que poner UN solo 20(si tu array es de 20 envia SOLO 20 y para de enviar o de recivir.
Debe de funcionar, pero tu aparte pusiste otro(que es opcional) y por lo que veo nombrando ambos no funciona, otra cosa, el ultimo lo pusiste FUERA de los corchetes y con coma?.
Habria que ver que version de compilador tienes y si soporta esea ultima OPCION , en fin hay muchas cosas que puedes seguir revizando para llegar al fondo de tu problema. Reviza cuidadosamente que algo esta mal declarado(desde que te dio error de compilacion) prueba haciendo varios cambios... ya que si viene en el manual debe de poderse, pero la mayaria de los que usaron ese comando no quiso seguir investigando y se DEJO como error, pero puede estar en tus manos la respuesta.
Reviza la version de tu compilacion, reviza codigos.. etc.

Salu2