Autor Tema: como incrementar una y decrementar otra variable a partir de una 3a variable  (Leído 2643 veces)

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

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
cordial saludo,,
Tan amables podrian ayudarme,, tengo una variable en 0 y otra en 255 requiero que con otra que podria comenzar digamos de 0 -100, a medida que esta ultima se incremente la que este en 255 rebaje y la que esta en 0 incremente ambas simultaneamente, es posible?
Gracias de antemano.
Si algo parece complicado... es por que esta mal explicado.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #1 en: 17 de Abril de 2022, 16:24:20 »
la palabra "simultaneamente" es para tomarla en pinzas, nada es simultaneo... Pero si...

Como la primera comienza con 0 y la que se incrementa va de 0 a 100 (La llamamos Var), entonces no tiene sentido crear una nueva variable usas la misma... es decir no tiene sentido hacer 0 + Var
La segunda creas una variable y haces 255 - Var.

O si lo queres separado:

Código: C
  1. Incrementa = Var;
  2. Decrementa = 255 - Var;

255 es 0xFF en hexadecimal... ni vale la pena restar, solo es tomar el negado (complemento a uno) del valor

Código: C
  1. Incrementa = Var;
  2. Decrementa = ~Var;

Como observaras no vale ni la pena tener otra variable, con Var ya tenes ambas ( Var y ~Var) ...
PD: El complemento funciona unicamente con variables de 8 bits!, sino es una resta
« Última modificación: 17 de Abril de 2022, 17:15:51 por KILLERJC »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #2 en: 17 de Abril de 2022, 23:11:41 »
cordial saludo,,
Tan amables podrian ayudarme,, tengo una variable en 0 y otra en 255 requiero que con otra que podria comenzar digamos de 0 -100, a medida que esta ultima se incremente la que este en 255 rebaje y la que esta en 0 incremente ambas simultaneamente, es posible?
Gracias de antemano.

Esto que quieres hacer, básicamente es multiplicar tu variable por una pendiente (Sea positiva o negativa) y sumarle una variable. (Suponiendo que los cambios son lineales)

La aplicación práctica es cuando necesitas acondicionar una señal de analógica de voltaje al ADC de un microcontrolador (no se si sea este tu caso)


Para solucionar eso, te recomiendo echarte un repaso de la solución de sistemas de dos ecuaciones con dos incógnitas.


Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #3 en: 19 de Abril de 2022, 09:56:24 »
Creo que esto es lo que estás buscando.

Código: C
  1. unsigned int var1, var2, var3;
  2.  
  3. var1 = 50;  // Cualquier valor entre 0 y 100
  4.  
  5. var2 = (var1*255)/100;
  6. var3 = 255 - var2;

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #4 en: 19 de Abril de 2022, 10:20:36 »
Citar
Publicado por: KILLERJC
« en: 17 de Abril de 2022, 16:24:20 »

la palabra "simultaneamente" es para tomarla en pinzas, nada es simultaneo... Pero si...

Como la primera comienza con 0 y la que se incrementa va de 0 a 100 (La llamamos Var), entonces no tiene sentido crear una nueva variable usas la misma... es decir no tiene sentido hacer 0 + Var
La segunda creas una variable y haces 255 - Var.

    Incrementa = Var;
    Decrementa = 255 - Var;

Citar
Publicado por: Picuino
« en: Hoy a las 09:56:24 »

Creo que esto es lo que estás buscando.

    unsigned int var1, var2, var3;
     
    var1 = 50;  // Cualquier valor entre 0 y 100
     
    var2 = (var1*255)/100;
    var3 = 255 - var2
Gracias por sus respuestas, cada vez aprendo mas de ustedes, ambas formas las aplico y me dan perfecto.
Gracias por ayudarme.
Si algo parece complicado... es por que esta mal explicado.

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #5 en: 19 de Abril de 2022, 14:02:24 »
La solución más simple, es la que plantea KILLER.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #6 en: 16 de Junio de 2022, 22:49:08 »
cordial saludo, perdonen mi ignorancia en algo que podria ser logico.
hice lo siguiente..
Código: C++
  1. unsigned int8 conta=254;
  2.       unsigned int8 Incrementa = conta;
  3.       unsigned int8 Decrementa = ~conta;
  4.       printf("Incrementa %d.\n", Incrementa);
  5.       delay_ms(1000);
  6.       printf("Decrementa %d.\n", Decrementa);
  7.       delay_ms(1000);
y obtengo..

Incrementa -2
Decrementa 1


no deberia ser 254 y 1?
que no se?
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #7 en: 16 de Junio de 2022, 23:05:42 »
cordial saludo, perdonen mi ignorancia en algo que podria ser logico.
hice lo siguiente..
Código: C++
  1. unsigned int8 conta=254;
  2.       unsigned int8 Incrementa = conta;
  3.       unsigned int8 Decrementa = ~conta;
  4.       printf("Incrementa %d.\n", Incrementa);
  5.       delay_ms(1000);
  6.       printf("Decrementa %d.\n", Decrementa);
  7.       delay_ms(1000);
y obtengo..

Incrementa -2
Decrementa 1


no deberia ser 254 y 1?
que no se?

Recuerdo que en C con %d, el printf utiliza variables tipo char (Con signo), por lo tanto el octavo bit es el signo,  los valores a imprimir sería de 0 a 127, en tu caso 254 sería un número negativo.

Recuerdo que había una manera de hacerlo, voy  a buscarlo y si encuentro algo, lo publico.
« Última modificación: 17 de Junio de 2022, 09:30:37 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #8 en: 16 de Junio de 2022, 23:07:23 »
cordial saludo, perdonen mi ignorancia en algo que podria ser logico.
hice lo siguiente..
Código: C++
  1. unsigned int8 conta=254;
  2.       unsigned int8 Incrementa = conta;
  3.       unsigned int8 Decrementa = ~conta;
  4.       printf("Incrementa %d.\n", Incrementa);
  5.       delay_ms(1000);
  6.       printf("Decrementa %d.\n", Decrementa);
  7.       delay_ms(1000);
y obtengo..

Incrementa -2
Decrementa 1


no deberia ser 254 y 1?
que no se?

Recuerdo que en C, el printf utiliza variables tipo char (Con signo), por lo tanto el octavo bit es el signo,  los valores a imprimir sería de 0 a 127, en tu caso 254 sería un número negativo.

Recuerdo que había una manera de hacerlo, voy  a buscarlo y si encuentro algo, lo publico.

Tal vez lo correcto sea asi:

Código: C
  1. printf("%u",x);

Fuente: https://stackoverflow.com/questions/27547377/format-specifier-for-unsigned-char

Pero CCS me parece que no obedece todas las normas del lenguaje C.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #9 en: 16 de Junio de 2022, 23:20:18 »
DominusDRR
hice el cambio y ahora imprime correctamente, muchas gracias.
que informacion busco para entender el tema?


Código: C++
  1. unsigned int8 conta=254;
  2.       unsigned int8 Incrementa = conta;
  3.       unsigned int8 Decrementa = ~conta;
  4.       printf("Incrementa %u.\n", Incrementa);
  5.       delay_ms(1000);
  6.       printf("Decrementa %u.\n", Decrementa);
  7.       delay_ms(1000);
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como incrementar una y decrementar otra variable a partir de una 3a variable
« Respuesta #10 en: 17 de Junio de 2022, 09:27:36 »
DominusDRR
hice el cambio y ahora imprime correctamente, muchas gracias.
que informacion busco para entender el tema?


Código: C++
  1. unsigned int8 conta=254;
  2.       unsigned int8 Incrementa = conta;
  3.       unsigned int8 Decrementa = ~conta;
  4.       printf("Incrementa %u.\n", Incrementa);
  5.       delay_ms(1000);
  6.       printf("Decrementa %u.\n", Decrementa);
  7.       delay_ms(1000);

Pues a parte de seguir un curso de C, deberías leer el manual de usuario de tu compilador.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32