Переопределение функций getchar и putchar важно для использования мощных возможностей ввода/вывода встроенных библиотек Си (например, функции printf). Это позволяет выводить на LCD-индикатор или в последовательный порт какие-то данные, что можно использовать для отладки или в работе программы.
Получить какие-то данные из первоисточника по этому вопросу можно, если открыть pdf-файл EWAVR_CompilerReference.pdf (вызывается из меню Help\AVR C/C++ Compiler Reference Guide), и начать читать раздел Part 1. Using the compiler\The CLIB runtime environment\Input and output.
Функции определены в inc\clib\stdio.h (или в inc\dlib\stdio.h) следующим стандартным образом:
int putchar(int);
int getchar(void);
Переопределение рассмотрим на примере функции putchar. Процесс по шагам:
1. Скопируйте файл src\lib\clib\putchar.c в корень вашего проекта. 2. Сделайте необходимые изменения в putchar.c (тут должен быть вывод данных, привязанный к вашей имеющейся аппаратуре, например, это может быть LCD-индикатор GDM1602A, подключенный выбранным вами образом к микроконтроллеру). 3. Добавьте измененный файл putchar.c в проект (Project\Add Files...). 4. Добавьте строчку #include в файл main.c (если именно там будем вызывать putchar). 5. Вставьте в нужных местах вызовы printf. 6. Перекомпилуйте проект. |