Нужно внутри этой функции выделить память под эту строку, и с этой памятью работать( ну указатель получишь на память ). А потом незабыть почистить за собой методом стандартным free().
Возникла проблема с компиляцией. Утилитой make из WinAVR на основе родного шаблона сделал макефайл для компиляции. Но при компиляции сразу же появляется некая ошибка: makefile:441: *** target pattern contains no `%'. Stop При это при клике на нее указывается в каком месте Makefile'а возникает загвоздка:
# Change the build target to build a HEX file or a library. build: elf hex eep lss sym #build: lib
Вот здесь в начале строки "lib: $(LIBNAME)" останавливается курсор. Погуглив, понял, что это не редкая ошибка и возникает довольно часто, но вот решения не нашел. Исходник всего лишь из одного .с файла. Настройки редактора и создание Makefile делалось точно как в "Курсе". Я так понял, что эта секция говорит, что конкретно надо генерировать. Но что-то у него не складывается с последними двумя строчками. WinAVR установлена по короткому пути e:\avr\WinAVR. Версия - точно не помню (сейчас с др. компьютера пишу), но какая-то последняя декабрьская от 2008г.
Приложил. Всместе с makefile, что создан по шаблону. Проц - атмега16. Уже не помню только - сам код работоспособен или нет, может я в нем что менял и не подправил, поэтому там возможны ошибки, но вроде бы не в этом деле. Сообщение что я приводил выше сразу появляется.
Ничего не пойму Что, в майкфайле достаточно иметь только заполненное поле TARGET с именем файла проекта и без расширения? Значит, как написано здесь avr123.nm.ru/04.htm не правильно? Т.е. не указывать исходник в пункте "C/C++ source file(s)...", а только указать его в "Main file name" в утилите? Причем только имя, без полного пути? Тогда да, все компилиться.
весь день пытаюсь просимулировать код (http://www.superkranz.de/christian/S65_ ... tware.html) написаный для WinAVR в VMLAB/ Почему все так сложно и не очевидно? Проект с трудом создал. 1) Как задать главный файл? (есть файлы "simple.c" "lcd.asm" "disp.c" "disp.h" "lcd.h" "makefile.mak" - в WinAVR компилится, а вот как можно с этим кодом из VMLAB работать??? ) 2) Почему он не подтягивает файлы в Include указанные, и как следствие, ругается на все прописаные там функции?? 3) Посмотрел курс АВР - там только все готовое, а как с нуля сделать - не понятно 4) CVAVR и WinAVR - это какието совсем разные компиляторы? С первым проблем нету...
Добавлено спустя 38 минут 46 секунд: #ifndef LCD_ASM
void mswait(uint16_t ms);
void lcd_init(void); // LCD initialise ... #endif Что это за конструкция-то?? где же сама функция?? фигня какаято.
executer писал(а):3) Посмотрел курс АВР - там только все готовое, а как с нуля сделать - не понятно
Дак надо же читать ! а не смотреть http://avr123.nm.ru/z3.htm упражнение 3 - "Настройка проекта VMLAB для симуляции AVR"
executer писал(а):4) CVAVR и WinAVR - это какието совсем разные компиляторы? С первым проблем нету...
CVAVR очень удобен для начала. Но и WinAVR приручается. Как работать в WinAVR из VMLAB описано на странице курса о компиляторах и симуляторах для AVR http://avr123.nm.ru/04.htm
используйте проекты готовые из примеров VMLAB для WinAVR - C:\VMLAB\WinAVRdemo и подставляйте туда свои исходники.
Есть еще и универсальный шаблон с настроеными проектами для разных компиялторов и симуляторов viewtopic.php?f=2&t=1070
Добавлено спустя 1 минуту 50 секунд:
Сергей писал(а):Учи Си!
А я советую примеры самого WinAVR посмотреть и ИЗУЧИТЬ ! в папке C:\WinAVR\doc\avr-libc\examples