AVR studio в вопросах и ответах
Re: AVR studio 4 в вопросах и ответах
Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
Борис+ писал(а):Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо
Вы что ли Студию на русском хотите?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: AVR studio 4 в вопросах и ответах
О! Круто, установил 4.16 версию и теперь там дофигище контроллеров.

- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Gudd-Head писал(а):Борис+ писал(а):Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо
Вы что ли Студию на русском хотите?Что за бред. Как же вы даташиты и аппноты тогда читать будете, если со студией не можете разобраться?
Ха - ха -ха. она даже в пути файлов руский не поддерживает, не то что по русски говорить.
Легче найти российского производителя микроконстроллеров.
Может вот эти ссылки помогут?
переводчик
еще переводчик
тоже нормальный переводчик
В поисках истины человек развивается.
Re: AVR studio 4 в вопросах и ответах
ну пусть не програму а описание к ней тоже подойдет
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
Борис+ писал(а):ну пусть не програму а описание к ней тоже подойдет
Что там описывать? File, Open, Save, New, Run? Там есть встроенный хэлп.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Борис+ писал(а):ну пусть не програму а описание к ней тоже подойдет
Поищите в сети эту книгу. Достаточна полезна в плане освоения студии
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: AVR studio 4 в вопросах и ответах
книгу нешол но хотелось бы описание для програмы тоже
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Хоть почитайте что ли.... там же рускким по белому описана работа в студии. Или я чего-то не догоняю?
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: AVR studio 4 в вопросах и ответах
спасибо начал читать
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
У меня тут ещё одна проблемка с макросами. Конкретно - это проклятое целочисленное деление! Как заставить студию в качестве результата 1/2 возвращать 0.5, а не 0?
UPD. А, всё, догадался!
Здесь нужно как в си: указать, что делимое число является дробным, а не целым. Если написать 1.0/2 то возвращается, как и надо, 0.5! Пойду переписывать макросы. 
UPD. А, всё, догадался!
-
Nipochomus
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вс дек 20, 2009 01:06:21
Re: AVR studio 4 в вопросах и ответах
Здравствуйте!
Подскажите каким образом на языке СИ можно опросить бит порта?
Т.е. if (B.5==1), нужно знать значение только одного бита, на других может быть что угодно.
Объясните пожалуйста на примере, так как в программировании не очень силён.
Подскажите каким образом на языке СИ можно опросить бит порта?
Т.е. if (B.5==1), нужно знать значение только одного бита, на других может быть что угодно.
Объясните пожалуйста на примере, так как в программировании не очень силён.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
PINx.n
x - имя порта. A, B, C, D, E, F, G.
n - номер битика в нем.
x - имя порта. A, B, C, D, E, F, G.
n - номер битика в нем.
Docendo discimus
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: AVR studio 4 в вопросах и ответах
Код: Выделить всё
if (Variable&(1<<Bit))
{....}Variable - переменная в которой этот бит. Bit - номер бита. Не забываем, что номера битов начинаются с 0 (нуля). переменная типа char в, например, IAR AVR имеет 8бит=[0...7].
В случае,если нужен просто флаг, а не определенный бит переменной можно воспользоваться битовыми полями:
Код: Выделить всё
struct
{unsigned char bit_0 :1,
bit_1 :1,
bit_2 :1,
bit_3 :1,
bit_4 :1,
bit_5 :1,
bit_6 :1,
bit_7 :1;
}Flags;
if (Flags.bit_0)
{//действие,если флаг равен 1}
if (!(Flags.bit_0))
{//действие,если флаг равен 0}имена bit_0,bit_1,...,bit_7 могут быть любыми удобными для использования.
Ставим плюсы: )
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
только при этом может увеличиться объем кода, к тому же доступ к битовому полю явно будет неатомарным даже для однобайтной переменной/структуры. чтобы попытаться избежать этих проблем, можно помещать такое битовое поле в РЕГИСТРОВУЮ переменную (если, конечно, вы умеете это делать правильно)ibiza11 писал(а):В случае,если нужен просто флаг, а не определенный бит переменной можно воспользоваться битовыми полями
битва с дураками проиграна, победители торжествуют. слава победителям!
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: AVR studio 4 в вопросах и ответах
.. а логические операции кто мешает использовать?Nipochomus писал(а):Подскажите каким образом на языке СИ можно опросить бит порта?
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: AVR studio 4 в вопросах и ответах
не понял про неатомарный доступ, смотрите листинг:Мастер Ломастер писал(а):только при этом может увеличиться объем кода, к тому же доступ к битовому полю явно будет неатомарным даже для однобайтной переменной/структуры. чтобы попытаться избежать этих проблем, можно помещать такое битовое поле в РЕГИСТРОВУЮ переменную (если, конечно, вы умеете это делать правильно)ibiza11 писал(а):В случае,если нужен просто флаг, а не определенный бит переменной можно воспользоваться битовыми полями
Код: Выделить всё
// 764 if (Flag.ModeToutEn)
LDI R30, LOW(Flag)
LDI R31, (Flag) >> 8
LDD R16, Z+1
SBRS R16, 7
RJMP ??T0_OVF_0Ставим плюсы: )
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Вот у меня ещё один вопрос. Делить я научился, например, запись 5.0/2 даёт 2.5 . Теперь вопрос: как мне у этого числа взять целую часть? Нужно вот почему. Есть запись, например:
Т.е. в регистр R25 мы загружаем число 2, но на таких местах компилятор выражает своё полное недовольство тем, что число дробное и вообще он будет брать от него только дробную часть.
Вот тут и встаёт оговорённый выше вопрос, ибо стопка таких варнингов, при компиляции, совсем не радует глаз.
Пока придумал только одно решение, пишем такой макрос:
Как видно, не очень элегантно... И всё таки оно не работает.
А есть ли что нибудь ещё?
ADD:
Методом случайного перебора была найдена такая стандартная функция: int()
Млин, ну есть ли где нибудь мануал по этим всем тонкостям?
Код: Выделить всё
LDI R25, 5.0/2Т.е. в регистр R25 мы загружаем число 2, но на таких местах компилятор выражает своё полное недовольство тем, что число дробное и вообще он будет брать от него только дробную часть.
Вот тут и встаёт оговорённый выше вопрос, ибо стопка таких варнингов, при компиляции, совсем не радует глаз.
Пока придумал только одно решение, пишем такой макрос:
Код: Выделить всё
#define trunc(x) (1/(1.0/(x)))Как видно, не очень элегантно... И всё таки оно не работает.
А есть ли что нибудь ещё?
ADD:
Методом случайного перебора была найдена такая стандартная функция: int()
Млин, ну есть ли где нибудь мануал по этим всем тонкостям?
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: AVR studio 4 в вопросах и ответах
не понял на каком языке Вы пишете, дефайны у Вас через # как в Си, а команды ассемблераIfoR писал(а):А есть ли что нибудь ещё?
попробуйте так:
Код: Выделить всё
#define x (char)(5.0/2)
LDI r16,xСтавим плюсы: )
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Это сиссемблер - ассемблер с сишным препроцессором. 
Да, в принципе, проблема уже решена. Извиняюсь за беспокойство, как всегда.
Ещё там нашёл стандартную функция abs(). Интересно, а есть ли там функция округления числа?
Нашёл гейд по AVR assembler на www.atmel.com/dyn/resources/prod_documents/AVRASM2.pdf
. Ппц...
Функции округления нет, но тем не менее её не сложно реализовать:
Да, в принципе, проблема уже решена. Извиняюсь за беспокойство, как всегда.
Ещё там нашёл стандартную функция abs(). Интересно, а есть ли там функция округления числа?
Нашёл гейд по AVR assembler на www.atmel.com/dyn/resources/prod_documents/AVRASM2.pdf
Функции округления нет, но тем не менее её не сложно реализовать:
Код: Выделить всё
#define round(x) int((x) + 0.5)