Технический форум по робототехнике.
к561ЛА7 » 29 мар 2012, 10:43
Директива
lcd_putchar(myhour)
выводит на экран LCD не значение переменной (0-255), а код этой буквы, в одном знакоместе
можно ли вывести число?
Myp » 29 мар 2012, 11:11
можно
Romikgy » 29 мар 2012, 11:19
lcd_putchar(0x30+(myhour%100));
lcd_putchar(0x30+((myhour%10)&10));
lcd_putchar(0x30+((myhour)&10));
типа так наверное
к561ЛА7 » 29 мар 2012, 11:37
Romikgy писал(а):lcd_putchar(0x30+(myhour%100));
lcd_putchar(0x30+((myhour%10)&10));
lcd_putchar(0x30+((myhour)&10));
типа так наверное
Все равно символы выводит
Глубокоуважаемый Федор Анатольевич знает но молчит
Myp » 29 мар 2012, 11:50
у аврчика же в курсе помоему очень понятно описано как выводить на экран данные
Romikgy » 29 мар 2012, 11:54
к561ЛА7 писал(а):Romikgy писал(а):lcd_putchar(0x30+(myhour%100));
lcd_putchar(0x30+((myhour%10)&10));
lcd_putchar(0x30+((myhour)&10));
типа так наверное
Все равно символы выводит
Глубокоуважаемый Федор Анатольевич знает но молчит
в протеусе или в живую? если в протеусе то проект выложи
к561ЛА7 » 29 мар 2012, 12:01
вживую в кодвижн авр
У авр только строчки прописано как выводить и вывод данных на USART
Myp » 29 мар 2012, 12:10
вот там часики делают
http://my-avr.at.ua/publ/1-1-0-24и время выводят вот так
- Код: Выделить всё • Развернуть
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Time is=");
lcd_putchar(hour/10+0x30);
lcd_putchar(hour%10+0x30);
lcd_putchar(':');
lcd_putchar(min/10+0x30);
lcd_putchar(min%10+0x30);
lcd_putchar(':');
lcd_putchar(sek/10+0x30);
lcd_putchar(sek%10+0x30);
я не помню как я выводил время, потому и не говорю =)
к561ЛА7 » 29 мар 2012, 12:17
тут если задавать переменную 2 знаками то она выводиться, а если 3мя -
тоесть больше 99 - то вместо старшей выводиться символ
тоесть тут сначала 1 символ выводися, потом второй
что значит /10+0x30 и %10+0x30 вообще не понятно
Romikgy » 29 мар 2012, 12:47
символ нуля это 0x30
/ - деление
% - деление по модулю
к561ЛА7 » 29 мар 2012, 13:12
если вот так то 2 цифры выводит
lcd_putchar(mydate/10+0x30); // (делим на 10 и выводим)
lcd_putchar(mydate%10+0x30); // это зачем непонятно - но выводиться
а если вот та к то 3 цивры но на место 2 й - символ
lcd_putchar(mymonth/100+0x30); // (делим на 100 и выводим)- выводится
lcd_putchar(mymonth/10+0x30); // (делим на 10 и выводим) выводиться символ
lcd_putchar(mymonth%10+0x30); // это зачем непонятно -но выводиться
а зечет тут везде ссимвол нуля прибавляется?
Добавлено спустя 13 минут 30 секунд:
lcd_putchar(mymonth/100+0x30); //
lcd_putchar((mymonth-(100*(mymonth/100)))/10+0x30); //
lcd_putchar(mymonth%10+0x30); //
вроде работает
Romikgy » 29 мар 2012, 13:41
if ( x>99 )
{
y=x/100;
lcd_putchar(y+0x30);
y=(x/10)%10;
lcd_putchar(y+0x30);
y=(x)%10;
lcd_putchar(y+0x30);
}
else
{
if (x>9)
{
y=(x/10);
lcd_putchar(y+0x30);
y=(x)%10;
lcd_putchar(y+0x30);
}
else
{
lcd_putchar(y+0x30);
}
}
Myp » 29 мар 2012, 15:13
ыыыыыы
какая страшная макарона