Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/04/2014 #1


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
23/04/2014 #2

Avatar de ByAxel

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
23/04/2014 #3

Avatar de papirrin

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.
23/04/2014 #4


no es para un lcd es que necesito hacer una cuenta numerica, pero necesito el numero en decimal
23/04/2014 #5

Avatar de papirrin

marconikov dijo: Ver Mensaje
no es para un lcd es que necesito hacer una cuenta numerica, pero necesito el numero en decimal
es difici ayudarte sin mas datos.

es lo mismo que pongas.

Var1=%111*$A1
que:
var1=7*161

ya que como se te dijo todos son un valor numerico la diferencia lo haria el tipo si es bit, byte o word
23/04/2014 #6

Avatar de ByAxel

Igual...

marconikov dijo: Ver Mensaje
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???
23/04/2014 #7

Avatar de papirrin

Cont1 = Cont1 + 0x01
Ese es para C byaxel XD, en picbasic es:

Cont1=Cont1+$01
23/04/2014 #8


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
23/04/2014 #9

Avatar de papirrin

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.
23/04/2014 #10


ah ok no perfecto, pense que no se podia restar un numero binario con una decimal...
RESULTADO = X (binario) + decimal
23/04/2014 #11

Avatar de papirrin

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.
23/04/2014 #12


de acuerdo, gracias por su ayuda muchachos
02/05/2014 #13


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..
03/05/2014 #14
Moderador

Avatar de D@rkbytes

blackpic dijo: Ver Mensaje
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

blackpic dijo: Ver Mensaje
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.

No te entendí.
¿La conversión de qué?
03/05/2014 #15


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 ...
17/12/2015 #16


y si se tratara de enviar un dato al RELOJ DS1302?....hay q enviarle datos en formato hexadecimal no acepta en decimal o en binario....como se haría?
17/12/2015 #17

Avatar de Scooter

Lee el datasheet. Lo que diga, "santa palabra"


Suelen ser BCD
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.