Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Среда разработки для AVR

Вопрос   У меня не работает printf. Что делать?

Ответ  Ответ: Наверх [Вернуться в категорию "Среда разработки для AVR"]

Во-первых, включить в свою программу отдельную функцию putchar:

int putchar(int c)

{

while ((USR & (1 << UDRE)) == 0);

UDR = c;

return c;

}

Стандартный putchar в библиотеке скомпилирован под несуществующий 8414.

Для доступа к именованным названиям битов регистров следует взять правильный .h-файл из io_def.zip.

Эту функцию следует включать только при компиляции под target=release, иначе под отладчиком может отказаться работать окно Terminal I/O.

Во-вторых, следует проверить процедуру установки скорости обмена последовательного порта.

В-третьих, надо правильно выбрать вариант функции printf. Подробности - смотри AT90S C Compiler Programming Help, Configuration, Input and output.

Стандартная функция printf требует для своей работы минимум 134 байта ОЗУ в стеке. Это страшное расточительство, поэтому есть сокращенные версии printf, которые обладают значительно меньшими возможностями форматирования (в частности, не поддерживают задание поля ширины вывода), но зато не требуют для работы так много ОЗУ. Я бы порекомендовал использовать C:IAREW22DEMOA90ETCintwri.c с небольшими исправлениями - заменить

static const char hex[] = "0123456789ABCDEF";

на

static flash char hex[] = "0123456789ABCDEF";

и перейти от printf к printf_P заменой:

int printf (const char *format, ...)

на

int printf_P (const char flash *format, ...)

Кроме того, я бы рекомендовал вообще отказаться от printf и перейти к printf_P.

[Среда разработки для AVR]

Новости
[06/02/2019] Конференция в МГТУ им. Баумана «Технологии разработки и отладки сложных технических систем» 2019
[09/05/2018] Грандиозная майская распродажа на Gearbest!
[16/05/2017] С 15 по 17 мая в магазине Gearbest проходит грандиозный флэшсейл
[10/05/2017] Так что же такое Спиннер?
[05/12/2016] Новый Год и Рождество с GearBest!
Читать все новости >>
Каталог схем
PDA - интерфейсы и схемы Автозвук Автомобиль Аудио Безопасность Бытовая электроника Видео Видеокамеры Высоковольтные Генераторы Игры, развлечения Измерения Интерфейсы Коммутация Компьютер Медицина Моделирование/ Роботы Музыка Передатчики Питание Получение и накопление данных Предусилители Радио Разное Ремонт Ретро Свет/Лазер/ Cветодиоды/IR Сети Солнечная энергия Сотовая связь ТВ-Мониторы Телефония Управление двигателями Фильтры Цифровые/ Микроконтроллеры Electronic circuits Datasheets Каталог схем Принципиальные схемы
Мicrocontrollers
Drivers for LED dispays Data Logger for iButton LCD-module with MCS-51 Thermometers Dallas Semiconductor Work with EEPROM 24LCxx MSP430 with Flash-memory ATmega169 and AVR-Baterfly CAN interface USB interface
Избранные схемы
Arduino Аудио В Вашу мастерскую Видео Для автомобиля Для дома и быта Для начинающих Зарядные устройства Измерительные приборы Источники питания Компьютер Медицина и здоровье Микроконтроллеры Музыкантам Опасные, но интересные конструкции Охранные устройства Программаторы Радио и связь Радиоуправление моделями Световые эффекты Связь по проводам и не только... Телевидение Телефония Узлы цифровой электроники Фототехника Шпионская техника
Пользователи
Создано аккаунтов:
Сегодня: 0
Вчера: 0
Всего: 146140

Статистика:

прописка в москве сколько стоит.
 © 2003—2024 «Электронный портал»Обр@тная связь