Hola a todos ., y desde ya gracias a los que respondan
Quiero cambiarlas el modo que manejo las funciones
Originalmente es con llaves ., que colocan a GND los pines/port de un microcontrolador
En el caso de la seleccion ., son 3 pin/port ., y la velocidad son 4 pin/port
Lo quiero cambiar por dos potenciometros., manejando ADC .,de 7 pin/port usaria solo 2 pin/port
Eso me permitiria migrar a un microcontrolador mas pequeño (menos pin/port)
Con la convercion de ADC y su enparejamiento a valor de 0 a 255 me funciona bien
El problema lo tengo en la funcion de selecion ya sea de funcion o velocidad
Los condicionales que elegi
Creo que son correctas ., si bien funciona ., cuando ejecuto el movimiento del potenciometro ., cambia el valor elegido pero Tambien me muestra todo los demas valores no elegidos ., cosa que con las llaves no sucede (oviamente)
Voy a mostrar solo un potenciometro (porque el otro funciona de la misma manera)
Las llaves se definen asi
La conbinacion de las pociciones de las llaves ., me da 9 valores .,
Entonces adapto esas 9 pocicones de esta manera
No veo el error de mi parte ., o capaz interpreto mal la reforma o funcionamiento del codigo
Desde ya michas gracias a que opine y perdonen la molestia
ATTE : juan
Quiero cambiarlas el modo que manejo las funciones
Originalmente es con llaves ., que colocan a GND los pines/port de un microcontrolador
En el caso de la seleccion ., son 3 pin/port ., y la velocidad son 4 pin/port
Lo quiero cambiar por dos potenciometros., manejando ADC .,de 7 pin/port usaria solo 2 pin/port
Eso me permitiria migrar a un microcontrolador mas pequeño (menos pin/port)
Con la convercion de ADC y su enparejamiento a valor de 0 a 255 me funciona bien
El problema lo tengo en la funcion de selecion ya sea de funcion o velocidad
Los condicionales que elegi
C:
if
else if
Voy a mostrar solo un potenciometro (porque el otro funciona de la misma manera)
Las llaves se definen asi
C:
efecto = (0xFF -PINA);//dirección base de cálculo del patrón de DIPs
efecto = (efecto &0b111);//La resolución es bit0.bit1.bit2
Entonces adapto esas 9 pocicones de esta manera
C:
const uint8_t Patdirec[] PROGMEM =
{
0, 2, 11, 20, 24, 31, 37, 43, 61
};
uint8_t pasos; //N°de pasos en el secuenciador actual
uint8_t res; //resolucion
uint8_t pat_base;
uint8_t efecto; //dirección base del paso actual
uint16_t pat; // patron de bits
uint16or8 chs; // secuenciador
//efecto = (0xFF -PINA);//dirección base de cálculo del patrón de DIPs
//efecto = (efecto &0b111);//La resolución es bit0.bit1.bit2
{
if (potevirtual[1]>=226)
{
efecto=9;
}
else if (potevirtual[1]>=198 && potevirtual[1]<=225)
{
efecto=8;
}
else if (potevirtual[1]>=170 && potevirtual[1]<=197)
{
efecto=7;
}
else if (potevirtual[1]>=141 && potevirtual[1]<=169)
{
efecto=6;
}
else if (potevirtual[1]>=113 && potevirtual[1]<=140)
{
efecto=5;
}
else if (potevirtual[1]>=85 && potevirtual[1]<=112)
{
efecto=4;
}
else if (potevirtual[1]>=56 && potevirtual[1]<=84)
{
efecto=3;
}
else if (potevirtual[1]>28 && potevirtual[1]<55)
{
efecto=2;
}
else if (potevirtual[1]<27) // determinación de posición
{
efecto=1;
}
pat_base = pgm_read_byte(&Patdirec[efecto]);//obtener la dirección base del secuenciador actual
pasos = pgm_read_byte(&Patdirec[(efecto +1)]);//obtener la dirección base del siguiente secuenciador
pasos -= pat_base;
Desde ya michas gracias a que opine y perdonen la molestia
ATTE : juan