Autor Tema: Comando DIG del pbplus no anda??  (Leído 1973 veces)

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

25javier

  • Visitante
Comando DIG del pbplus no anda??
« en: 13 de Febrero de 2004, 09:10:00 »
Hola amigos,yo enamorado del pbplus no puedo creer que no ande este comando sera un problema de la version 1.24???
este es el ejemplo de la ayuda ME DA 4 el resulatdo(en vez de 2)
               DIM VAR1 as BYTE
   DIM VAR2 as BYTE
   VAR1 = 124
   VAR2 = DIG VAR1 , 0   " Extract the second digit"s value
   PRINT at 1,1,@VAR2         " Display the value, which is 2

Lo probe de mil maneras y siempre me extrae el ultimo digito del numero que pongo(en este caso 4)
Me haria el favor alguien con esta version del pbplus(1.24) y la version superior probar a ver que pasa???
Saludos y graciasssssssssssssssssss
Javier

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Comando DIG del pbplus no anda??
« Respuesta #1 en: 13 de Febrero de 2004, 11:12:00 »
Hola Javier,
Si sirve el comando DIG, el error es de el manual, pasa lo siguiente:
Para extraer  el valor deseado, hay que especificar con el numero de digito siguiente de la variable a la que vas a extraer el digito, en tu ejemplo tu tienes especificado el  digito 0!!! con esto, tu estas extrayendo el bit 0 de la variable (valor decimal 4 ), no el primer digito (bit 1 de la variable con valor 2 decimal), no se si sera error de el manual del 1.24, pues la version que tengo yo es la 2.1.3 y viene excatamente los mismos ejemplos, y este viene con un digito 1 no cero(a lo mejor la version mas nueva 2.1.3 ya viene corregido ese y otros errores de escritura del manual, ya que probe en el soft 1.24j y funciono el comando) , si quieres que extraiga el valor 2 tienes que poner el bit 1 logicamente, y te funcionara, si quieres el tercer valor tienes que poner el bit2 y asi sucesvamente.
Probe en ambos 1.24 y 2.13 y funciona de maravilla este comando .
El comando funciona de la siguiente forma :
Variable = DIG Value , Digit number
donde variable es es la variable donde guardara el valor extraido
DIG es el comando
Value es el valor o la variable de donde vas a extraer el digito
y numero digito es el BIT que quieres extraer de Value
Siempre acuerdate de que el primer bit es el 0 y el septimo es el bit 7.
Aqui te pongo el ejemplo que tome del manual 2.1.4:
DIM VAR1 as BYTE
DIM VAR2 as BYTE
VAR1 = 124
VAR2 = DIG VAR1 , 1  <---- aqui esta el detalle
PRINT at 1,1,@VAR2

Espero que te sirva la informacion javier
Saludos pana

25javier

  • Visitante
RE: Comando DIG del pbplus no anda??
« Respuesta #2 en: 13 de Febrero de 2004, 14:06:00 »
Hola pana!!,vos sabes que lo prove asi como me lo mandaste y me sigue dando 4,aunque la posicion de digito que busque sea 1,2,3,siempre el mismo error...siempre da 4
DIM VAR1 as BYTE
DIM VAR2 as BYTE
 VAR1 = 124
 VAR2 = DIG VAR1 , 1  " <---- aqui esta el detalle
PRINT at 1,1,@VAR2

Lo que no te entendi,es cuando decis :tu estas extrayendo el bit 0 de la variable,si la variable es 124(01111100),el bit cero de la variable es 0,el bit 1 de la variable es 0,el bit 2 de la variable es 1..pero yo no extraigo bits sino el valor de cada digito que conforma el numero 124....bueno,como veras sigo mareado...
pero si a vos te anda asi como esta,tengo que tener un problema en otro lado....no???
Saludos y un abrazo!!!
Javier

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Comando DIG del pbplus no anda??
« Respuesta #3 en: 13 de Febrero de 2004, 14:41:00 »

Escriban asi:

Var2=Var1 DIG 1

El numero de digito a mostrar debe ser puesto inmediatamente despues de la palabra DIG...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

25javier

  • Visitante
RE: Comando DIG del pbplus no anda??
« Respuesta #4 en: 13 de Febrero de 2004, 16:16:00 »
hola viejo!!me sigue dando siempre 4!!!sin importa si pongo VAR2=VAR1 DIG 1
VAR2=VAR1 DIG 2
VAR2=VAR1 DIG 3
que estara pasando con esto??vos tenes la version 1.24,ya no se de que sospechar......

DIM VAR1 as BYTE
DIM VAR2 as BYTE
VAR1 = 124
VAR2=VAR1 DIG 1
PRINT at 1,1,@VAR2

Saludosssss
Javier

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Comando DIG del pbplus no anda??
« Respuesta #5 en: 13 de Febrero de 2004, 17:30:00 »
Hola javier,
Ahora si me dejaste pensando, ya probaste instalando nuevamente tu pbplus? no vaya a estar corrupto un inc, o algo similar, lo e probado en la version 2.1.3 y funciona como debe, me referi a bit, en escala digital,(mal empleada mi analogia hasta cierto punto) para referirme como bit0 al 1er digito, y asi sucecivamente, con ese cambio como te lo puse debe de funcionar, deja y lo pruebo en mi viejo 1.24j y te digo que paso, aunque viendo tu resultado puede ser un bug de esta version.
Deja y cheko pana y te escribo en un momento.

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Comando DIG del pbplus no anda??
« Respuesta #6 en: 13 de Febrero de 2004, 18:33:00 »
Mira no pude conseguir la version 1.24 solo la anterior 1.23 y tambien funciono Javier, aqui te pongo el hex generado por el compilador 1.23 revisalo, te debe aparecer un 1 en tu display, es decir con numero digito 2.


:10000000000000308A00D428A101A117AE00FE3004
:100010008A202E088A28A401A900AA01A011240878
:100020000319A0150530A3002730A80010302420A4
:100030000330A800E8302420A80164302420A8015F
:100040000A30242029082B28A7002A08A6002908FE
:10005000A500B3202508A500A3030319A0112408B7
:10006000031935282302031808002508031DA011D1
:10007000A0190800303E8A28AC00861105128316AC
:1000800086110512F030850583122C08A018662809
:100090003E30A60080309A203330AB007B201330F6
:1000A000A60088309A207B20643099207B20643021
:1000B00099202230AB007B20283065200C30652051
:1000C00006306520A0142C0866282014AB00201CE4
:1000D00074280512033C031C792879200530A600FA
:1000E000DC309A20031408002014FE3C03198828F1
:1000F0000516AB0E201C20108615F03085052B0848
:100100000F3985048611AB0E20187B2832309920D8
:100110002C08CF28A11B3C28A801A700FF30A70767
:10012000031CA807031CCF280330A600E7309A2041
:100130008E28A601FC3EA500A609031CA528FF30B9
:100140000000A5070318A028A5070000A60F9F28F8
:100150000800013EAC000A30A700A801B320AC0B98
:10016000AE2829080800AA01A9011030AB00260D0D
:10017000A90DAA0D2708A9022808031C280FAA0206
:100180000318C9282708A90728080318280FAA0751
:100190000310A50DA60DAB0BB7282508CF28831398
:1001A0008312031300000800A001073083169F008C
:1001B0008113061486140615061686160613861372
:1001C000831206138316061383128613831686136F
:1001D00001308312A8002C308A018D207C30B000C1
:1001E000A6013008A50002308A01A920B1008030A4
:0E01F000A10080308A01042031088A010B2012
:02400E00323F3F
:00000001FF

con la definicion mencionada anteriormente:

DIM VAR1 as BYTE
DIM VAR2 as BYTE
VAR1 = 124
VAR2 = DIG VAR1 , 2   
PRINT @VAR2   
otra cosa, revise el manual del 1.23 y tanbien viene correcto el detalle indicado en lugar de cero viene 1, esta raro que una version anterior y una posterior no tengan el error que mencionas, esto me hace pensar que tu version puede estar corrupta y por lo mismo no trabaje adecuadamente
Probadas las versiones 1.23 y 2.1.3 de PB plus

Saludos pana