Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.11.2010, 17:03
|
|
Прописка
Регистрация: 18.03.2010
Адрес: Украина, Тернополь
Сообщений: 225
Сказал спасибо: 14
Сказали Спасибо 44 раз(а) в 34 сообщении(ях)
|
Вывод на LCD
Сделал часы (DS1307+LCD+mega32). Все мне нравиться, но есть одно но:
у меня время выводиться следующим образом: например 12:5:31, нужно 12:05:31, то есть, если цифра меньше 10, надо спереди дописать 0, то есть чтобы было 05.
Компилятор Code Vision avr
Для вывода на LCD использую следующый код:
Код:
|
rtc_get_time(&hour,&min,&sek); //считать время
rtc_get_date(&day,&month,&year); //считать дату
sprintf(lcd_buffer_0,"Time: %u.%u.%u", hour, min, sek);
sprintf(lcd_buffer_1,"Date: %u.%u.%u", day, month, year);
PORTC.3 = 0; // LED on 2 во время «холостой» работы
delay_ms(500);
PORTC.3 = 1; // LED off 2
lcd_clear();
lcd_puts(lcd_buffer_0); //выводим масив на LCD
lcd_gotoxy(0,1);
lcd_puts(lcd_buffer_1); //выводим масив на LCD
delay_ms(500); |
Что нужно написать вместо %u.%u.%u
|
|
|
|
16.11.2010, 17:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Вывод на LCD
sprintf количество знаков имеет,параметр .
sprintf(lcd_buffer," %02u-%02u.%02u.%02u ",week,day,month,year);
upd . 0n - at least n characters are outputted. If the result has less than n characters, it is padded on the left with zeros.
а вообще - Help в CV глянуть.
Последний раз редактировалось OlegNZH; 16.11.2010 в 17:50.
|
|
|
|
16.11.2010, 18:10
|
|
Прописка
Регистрация: 18.03.2010
Адрес: Украина, Тернополь
Сообщений: 225
Сказал спасибо: 14
Сказали Спасибо 44 раз(а) в 34 сообщении(ях)
|
Re: Вывод на LCD
Не работает. пишет u.u.u
|
|
|
|
16.11.2010, 18:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Вывод на LCD
Извините , не может Такого ... я выдернул из Своей Рабочей программы строку ..(week -день недели- добавил в lib)
PS . даже навскидку ...у меня 4 u , у Вас 3 ... Не то , что-то ...неувязочка..
Последний раз редактировалось OlegNZH; 16.11.2010 в 18:18.
|
|
|
|
16.11.2010, 18:17
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Вывод на LCD
sprintf(lcd_buffer," %.2u-%.2u%.2u%.2u ",week,day,month,year);
|
|
|
|
16.11.2010, 18:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Вывод на LCD
так у Вас 3 переменные , или четыре? (%.2u- уберите - это день недели с дефисом...)
не понял юмора ...а чего там точки стоят? (sprintf(lcd_buffer," %.2u-%.2u%.2u%.2u ",week,day,month,year); ) сравните с оригиналом! %02u
Последний раз редактировалось OlegNZH; 16.11.2010 в 18:29.
|
|
|
|
16.11.2010, 18:26
|
|
Прописка
Регистрация: 18.03.2010
Адрес: Украина, Тернополь
Сообщений: 225
Сказал спасибо: 14
Сказали Спасибо 44 раз(а) в 34 сообщении(ях)
|
Re: Вывод на LCD
Не хочет, может что то в настройках компилятора?
|
|
|
|
16.11.2010, 18:34
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Вывод на LCD
Сообщение от OlegNZH
|
так у Вас 3 переменные , или четыре? (%.2u- уберите - это день недели с дефисом...)
не понял юмора ...а чего там точки стоят? (sprintf(lcd_buffer," %.2u-%.2u%.2u%.2u ",week,day,month,year); ) сравните с оригиналом! %02u
|
.2 указывает минимальное кол-во символов которое будет выведено при обработке типа u, т.е. 5 будет выведено, как 05.
Вы не видите там 4 переменные week,day,month,year.
Последний раз редактировалось realid; 16.11.2010 в 18:37.
|
|
|
|
16.11.2010, 18:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Вывод на LCD
%02u- Количество знаков ...Плюс- Лидирующие нули. Плюс дефис (или запятую ,как угодно)
0n - at least n characters are outputted. If the result has less than n characters, it is padded on the left with zeros.
|
|
|
|
16.11.2010, 18:42
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Вывод на LCD
Сообщение от OlegNZH
|
0n - at least n characters are outputted. If the result has less than n characters, it is padded on the left with zeros.
|
ограничение в 10 сиволов
Цитата:
|
The field width can be followed with dot (.) and a decimal integer representing the precision that specifies one of the following:
- minimum number of digits to generate on an integer conversion
|
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:53.
|
|