Autor Tema: Conversion char a int  (Leído 1364 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado erickkelvin

  • PIC10
  • *
  • Mensajes: 8
Conversion char a int
« en: 08 de Enero de 2012, 15:53:55 »
Buenas, tengo problemas durante la conversion del numero que ingreso por el teclado a un numero int =/ , no logro ver el error, me sale otro numero y no el que deberia =/

Esta es la parte de la conversion:

Código: [Seleccionar]
k=kbd_getc();
   if(k!=0)
      {
      cant[g]=k-48;
      g++;
         if(g==2)
         {
         ww=10*cant[0]+cant[1];        
         lcd_gotoxy(2,2);
         printf(lcd_putc,"numero: %u",ww);

Y este el codigo completo =/

Código: [Seleccionar]
#include <16f887.h>
#fuses hs,nowdt,nomclr,noprotect,nolvp
#use delay(clock=20M)
#define LCD_DATA_PORT getenv("SFR:PORTD")
#define LCD_ENABLE_PIN  PIN_d2                                
#define LCD_RS_PIN      PIN_d0                              
#define LCD_RW_PIN      PIN_d1                                  
#include <kbd4x4.c>
#include <lcd.c>
#include <stdlib.h>

int8 k;
int g=0,ww=0,a=0,i=0,x,y;
int8 cant[]={};

void f1()
{
output_a(0b00000101);
delay_ms(a);
output_a(0b00000100);
delay_ms(a);
output_a(0b00000110);
delay_ms(a);
output_a(0b00000010);
delay_ms(a);
output_a(0b00001010);
delay_ms(a);
output_a(0b00001000);
delay_ms(a);
output_a(0b00001001);
delay_ms(a);
output_a(0b00000001);
delay_ms(a);
}

void main()
{  
   port_b_pullups(0xFF);
   kbd_init();
   lcd_init();
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Motor PaP");
   output_low(pin_a0);
   output_low(pin_a1);
   output_low(pin_a2);
   output_low(pin_a3);
   delay_ms(500);
   a=20;
   ww=g=x=y=0;
while(true)
   {
   k=kbd_getc();
   if(k!=0)
      {
      cant[g]=k-48;
      g++;
         if(g==2)
         {
         ww=10*cant[0]+cant[1];        
         lcd_gotoxy(2,2);
         printf(lcd_putc,"numero: %u",ww);
            for (i=0;i<=ww;i++)
            {
            lcd_gotoxy(13,1);
            printf(lcd_putc,"%u",i);
            output_a(0b00000101);
            delay_ms(a);
            output_a(0b00000100);
            delay_ms(a);
            output_a(0b00000110);
            delay_ms(a);
            output_a(0b00000010);
            delay_ms(a);
            output_a(0b00001010);
            delay_ms(a);
            output_a(0b00001000);
            delay_ms(a);
            output_a(0b00001001);
            delay_ms(a);
            output_a(0b00000001);
            delay_ms(a);
            }
            delay_ms(1000);
            g=0;
            lcd_gotoxy(1,1);
            printf(lcd_putc,"\fMotor PaP");
         }
      }
   }
}
« Última modificación: 08 de Enero de 2012, 16:59:48 por erickkelvin »

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Conversion int8 a int
« Respuesta #1 en: 08 de Enero de 2012, 16:53:19 »
int8 = int
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado erickkelvin

  • PIC10
  • *
  • Mensajes: 8
Re: Conversion char a int
« Respuesta #2 en: 08 de Enero de 2012, 16:59:08 »
si me exprese mal ya que int es int8   , y char es unsigned int8
pero el problema ya lo solucione ;)

al declarar:  int8 cant[]={};    ->   int8 cant[2]={};