Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: многострадальный printf();
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Андрей Брест
Расклад такой:
Мега32, IAR 4.20A. Пишу свою функцию int putchar(int), вызываю --- символы передаются через USART правильно.
Пишу printf("ABCD\n\r@\"), без ошибок все компилится, но вместо "ABCD" вываливается какой-то мусор, такого вида "йм!&ъ–ЌxЌn'хд¦’32ІН&П]И8+шЬШышЙлщъЌ”ѕО".

Может необходимы какие-то дополнительные настройки?
Знающие люди, помогите!
DASM
А putchar в цикле нормально работает ? Стека достаточно выделено ?
Андрей Брест
Цитата(DASM @ Oct 30 2007, 14:31) *
А putchar в цикле нормально работает ? Стека достаточно выделено ?


Все решилось! Огромный респект!
Проблема была именно в размере стека.
Стояло 0x20, поставил 0xFF --- проблема исчезла!
DASM
Это не предел, он и пару килобайт скушать могет. Построен рекурсивно
kolobok0
Цитата(Андрей Брест @ Oct 30 2007, 13:21) *
Расклад такой:
Мега32, IAR 4.20A. Пишу свою функцию int putchar(int), вызываю --- символы передаются через USART правильно.
Пишу printf("ABCD\n\r@\"), без ошибок все компилится, но вместо "ABCD" вываливается какой-то мусор, такого вида "йм!&ъ–ЌxЌn'хд¦’32ІН&П]И8+шЬШышЙлщъЌ”ѕО".

Может необходимы какие-то дополнительные настройки?
Знающие люди, помогите!



возможно Вы очепятались...
но строка

"ABCD\n\r@\"

не правильно сформирована...как последствие - получите всё что угодно и не угодно...
возможно Вы хотели выдать так..

"ABCD\n\r@\\"

удачи Вам
(круглый)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.