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:
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 =/
#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");
}
}
}
}