Mostrar Digitos menores a 10 sin el cero

Iniciado por servicomdq, 21 Mayo 2015, 18:15 PM

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

servicomdq

Estimados, tengo un problema aver si alguno le paso. Estoy programando en C (y algunas Funciones minimas de C++) sobre una placa STM32f013 , que es parecida a una arduino, un poco mas potente y con pantalla tactil.

Tengo unos botones que suman o restan sobre una variable tipo int.

Cuando oprimo el boton , lo hace bien, cuando suma o resta, el tema esta en que cuando tengo 11 , le resto 1, y me muestra en pantalla 10, ok, uno menos y me aparece 90

si sumo o resto lo hace bien, lo que pasa es que el digito 0 no lo borra, queda cargado con cero, si le sumo uno vuelve a 10 bien.

el codigo seria algo asi :

Código:

int valor=0;
char varPantalla[3];

valor=14;

void Bton_LCD_Dwn(u8 index){
   if (index==1){
          if(valor>=0){
                valor=valor-1;
                strcpy(varPantalla,"");
                itoa(valor,varPantalla,10);
           }
       }
}

Sinteticamente es eso, despues la rutina que dibuja la pantalla dibuja y muy bien un monton de otros datos y controles, solo esto es lo que me falta y no puedo hacer que cuando este en 10 , me quede en 9 y no en 90.
Alguien me tira una soga? gracias

crack81

A mi me funciona bien no se cual es tu problema quiza necesitas especificar mejor tu pregunta para poder ayudarte saludos

yo probe esto

Código (c_mac) [Seleccionar]
#include<stdio.h>
#include <stdlib.h>
#include <string.h>


int valor=14;
char varPantalla[3];

void Bton_LCD_Dwn(int index){
    if (index==1){
           if(valor>=0){
                 valor=valor-1;
                 strcpy(varPantalla,"");
                 itoa(valor,varPantalla,10);
            }
        }
       
     printf("%d",valor-1);
}


int main(){

   Bton_LCD_Dwn(1);

return 0;
}
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

servicomdq

Gracias por tu respuesta.

El tema es que no puedo usar printf por que es una placa parecida a arduino, algo mas potente , el IDE es Keil .

Yo tomo desde el Array el valor, por eso lo convierto y cargo en la variable
Antes de cargarla , vacio el Array, en todo el codigo lo hago muchas veces sin problemas. El problema es que el INT del valor , parece que quedara cuando esta con 2 digitos cargado con dos espacios y cuando le resto 1 , el valor es 9 , pero deja un 0 en el espacio, como si fuera un array

seguire buscando

Gracias de todos modos