Tipos de variable en Basic

mi pregunta es si es posible mediante algun tipo de funcion cambiar el formato de una variable me explico:

X = ALGO (VALOR BINARIO)
"FUNCION" X = ALGO (DECIMAL)

PD: el compilador que uso es el Picbasic Pro, un microcontrolador PIC16F877A
 
Hola.
A nivel numérico no string... para el PIC es lo mismo binario, decimal, hexadecimal y octal... son solo representaciones para nosotros...
10 decimal = 0x0A en hexadecimal = 0b00001010 en binario... al PIC no le importa.

Los tipos de variable para Basic y para cualquier otro leguaje solo se componen por la longitud de bits que tienen. Así por ejemplo una variable tipo Byte tiene una longitud de 8 bits, otra del tipo Word es de 16 bits, etc...

Saludos
 
mi pregunta es si es posible mediante algun tipo de funcion cambiar el formato de una variable me explico:

es exacto como dice byaxel, si lo que quieres es plasmar la variable en un LCD, con los diferentes formato pones BIN,DEC,HEX

eje.
Var1 var byte
LCDOUT DEC VAR1
LCDOUT HEX VAR1
LCDOUT BIN VAR1

para trabajar con los diferentes formatos se pone:

Var1=%11111111 en binario
Var1=$FF en hexadecimal
Var1=255 en decimal

el valor sera el mismo.
 
Última edición:
Igual...

no es para un lcd es que necesito hacer una cuenta numerica, pero necesito el numero en decimal

Si no es para ningún tipo de representación visual hombre-máquina (LCD, display, GLCD, similares) no tiene sentido la conversión ya que en el fondo es lo mismo...

Solo respeta la longitud de los tipos... no confundas, que en programación se les llama tipos a los denominados Byte, Char, Long, Word, Float, etc. y no a los llamados decimal ó hexa. ó binario.

Cont1 VAR BYTE ' Variable tipo byte, almacena de 0 a 255 ó $FF ó %11111111... es lo mismo.
Cont1 = Cont1 + 1 ' Aquí suma 1, trabaja con decimal
Cont1 = Cont1 + $01 ' Aquí suma 1, es hexadecimal... pero ambos son lo mismo...

Que intentas hacer???
 
quiero hacer lo siguiente: una conversion A/D me entrega un valor, y con dicho valor realizo unas operaciones matematicas, multiplicas por 154/100 y restar por otro valor, el resultado me da un valor cercano a entero por ejemplo 8,058, ese resultado iba a meterlo en una condicion y restarlo hasta que fuera 0 para realizar una accion
 
restarlo hasta que fuera 0 para realizar una accion

pues es tal como dices simplemente restalo,

digamos tienes:

ADC=1000
ADC1=(ADC*154)/100

if adc1<X then
do while Adc1<>0
adc1=adc1-1

loop
aqui ya esta restado para lo que loquieras..
endif



no tiene mucho sentido pero asi seria como lo dices.
 
Última edición:
si, es correcto asi . XD

PD. nada mas como dato informativo y a grandes resgos: todo es binario pero el compilador PBP se encarga de hacer la conversión.
 
Hi aprovecho para preguntar a que es igual esta linea de codigo en basic. Vol = ((ADC+1)*/100)
ADC = variable AD del combertidor analogo dital configurado a 10 bit de resolucion (1023) maximo valor AD.
primero se le suma uno a la variable ADC luego no se como hacer el calculo para que me de igual, para haci saber el calculo real que me dara la combercion.

gracias..
 
Aprovecho para preguntar, ¿a qué es igual esta línea de código en basic. Vol = ((ADC+1)*/100)?
*/ Multiplica las variables y regresa los "Middle-Bits" de 16 Bits.

Por ejemplo:

ADC = 1023 + 1 = 1024
1024 * 100 = 102400
Vol = 102400 / 256 Nos da 400

No sé como hacer el cálculo para que me dé igual, para así saber el cálculo real que me dará la conversión.
:confused:
No te entendí.
¿La conversión de qué?
 
Gracias D@rkbytes ya mi pregunta esta solucionada con tu respuesta.
Me referia a que no sabia de donde salia el 400, ya que en el LCD lo mostraba pero por mas que hacia calculo no me daba, gracias ...
 
Saludos mi gente una preguntica..

Todos los pic configurado con el Rloj Interno a 4Mhz y 10Bits de resolución, tienen la misma lectura del ADC ?

O según el modelo la lectura ADC Varía ?
 
Saludos mi gente una preguntica..

todos los pic configurado con el Rloj Interno a 4Mhz y 10Bits de resolución, tienen la misma lectura del ADC ?

o segun el modelo la lectura ADC Varia ??

No, todo depende de la tensión de referencia. (Suponiendo que el divisor del reloj del ADC este bien configurado para que no muestree mas de la cuenta).
 
Atrás
Arriba