men17 писал(а):Делал программный, 3-х канальный ШИМ на ТИНИ13. Но? оказалось, что надо было под ТИНИ12. Мне всегда хватало Codevision, но не в этом случае... Прочитал в нете что AVR studio может мой код на СИ скомпилировать под ТИНИ12. Начал разбираться, но застрял. Вот скрин с сообщением. Подскажите, что делать дальше?
Весь экран почему то не дает прикрепить вот окно сообщений.
AVR STUDIO с плагином wnavr может понимать Си, но для ТИНИ12 только асм, си не понимает.
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
men17 писал(а):Делал программный, 3-х канальный ШИМ на ТИНИ13. Но? оказалось, что надо было под ТИНИ12. Мне всегда хватало Codevision, но не в этом случае... Прочитал в нете что AVR studio может мой код на СИ скомпилировать под ТИНИ12. Начал разбираться, но застрял. Вот скрин с сообщением. Подскажите, что делать дальше?
Весь экран почему то не дает прикрепить вот окно сообщений.
AVR STUDIO с плагином wnavr может понимать Си, но для ТИНИ12 только асм, си не понимает.
Panda_Y2K писал(а):AVR STUDIO с плагином wnavr может понимать Си, но для ТИНИ12 только асм, си не понимает.
Дискриминация какая-то. Пойду за тини 13
вообще говоря, в тини12 физически отсутствует ОЗУ, а язык Си как бы ориентирован на активное использование ОЗУ... однако, были виртуозы, которые и для таких безозушных МК умудрялись писать на WinAVR
битва с дураками проиграна, победители торжествуют. слава победителям!
Юзать команды LD и ST. IN и OUT дотуда не достреливают.
А не подскажете как именно? Я только начинаю изучать. По мануалу у меня не получается.
На одном простом примере сможете показать?
То есть вместо ldi temp,0; out ddra,temp как использовать ld и st?
ну в общем понятно - назначение регистрам символических имен..
так почему AVR Studio у меня ругается ? : warning: Registr r16 already definited by the .DEF directive
и так на все регистры которым назначаем символические имена
в чем проблема то ?
в документации нашел следующее:
DEF - Назначить регистру символическое имя
Директива DEF позволяет ссылаться на регистр через некоторое символическое имя. Назначенное имя может использоваться во всей нижеследующей части программы для обращений к данному регистру. Регистр может иметь несколько различных имен. Символическое имя может быть переназначено позднее в программе.
Синтаксис:
.DEF Символическое_имя = Регистр
Пример:
.DEF temp=R16
.DEF ior=R0
.CSEG
═ldi temp,0xf0═ ; Загрузить 0xf0 в регистр temp (R16)
═in ior,0x3f═ ; Прочитать SREG в регистр ior (R0)
═eor temp,ior═ ; Регистры temp и ior складываются по исключающему или
что не так ?
кстати вообще никакие регистры не переопределял в программе.. это первое переопределение (и то из за того что не хочу переписывать стороннюю библиотеку)
в принципе на предупреждения можно и забить - но как то не удобно потом другие варнинги искать в этой куче (у меня обычно программы компилируются без всяких предупреждений)
ВитГо писал(а):так почему AVR Studio у меня ругается:
warning: Registr r16 already definited by the .DEF directive
и так на все регистры которые переименовываем
Значит, они (эти регистры) где-то ещё обозваны.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ВитГо писал(а):так почему AVR Studio у меня ругается:
warning: Registr r16 already definited by the .DEF directive
и так на все регистры которые переименовываем
Значит, они (эти регистры) где-то ещё обозваны.
Я так и не нашел где !!! в m16def.inc этого тоже нет !
в моей программе тоже нет !!
да и опять таки - в доке написано что позже можно переопределить.. так если переопределены- то в чем проблема ??! переопределим еще раз.... ?
У меня версия 4.13. Попробовал вариант с двойным определением. Предупреждение. Попробовал вариант с однократным определением. Варнинга нет. Что-то в библиотеке значит еще сидит. А вообще - это же просто варнинг, учесть при осмыслении программы и не пихать разное в одно и то же одновременно. Или надо чтоб вылизано все было и сверкало?
pyzh_man писал(а):У меня версия 4.13. Попробовал вариант с двойным определением. Предупреждение. Попробовал вариант с однократным определением. Варнинга нет. Что-то в библиотеке значит еще сидит. А вообще - это же просто варнинг, учесть при осмыслении программы и не пихать разное в одно и то же одновременно. Или надо чтоб вылизано все было и сверкало?
да как сказать.. проект можно сказать на середине.
да и должно быть вылизано.. как показывает моя практика - если есть варнинги - то обычно возникают и глюки - причем эти глюки зачастую очень тяжко искать.. (например то же выравнивание до слова - в коде вроде все ОК.. а на деле белеберда)