Страница 33 из 160

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 10:49:04
Борис+
Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 10:54:35
Gudd-Head
Борис+ писал(а):Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо
Вы что ли Студию на русском хотите? :) Что за бред. Как же вы даташиты и аппноты тогда читать будете, если со студией не можете разобраться?

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 13:46:41
ANALOG
О! Круто, установил 4.16 версию и теперь там дофигище контроллеров. :) :))) :)))

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 14:56:27
vitalik_1984
Gudd-Head писал(а):
Борис+ писал(а):Здравствуйте увахаемые. Я давно хочу освоить AVR но не могу найти программу на русском языке(с английским мне трудно) облазил везде предлогоют в основном обман какойто так может кто знает где скачать или свою даст буду очень благодарен за ранее спасибо
Вы что ли Студию на русском хотите? :) Что за бред. Как же вы даташиты и аппноты тогда читать будете, если со студией не можете разобраться?
Ха - ха -ха. она даже в пути файлов руский не поддерживает, не то что по русски говорить.
Легче найти российского производителя микроконстроллеров.

Может вот эти ссылки помогут?

переводчик
еще переводчик
тоже нормальный переводчик

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 17:13:28
Борис+
ну пусть не програму а описание к ней тоже подойдет

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 17:24:57
Gudd-Head
Борис+ писал(а):ну пусть не програму а описание к ней тоже подойдет
Что там описывать? File, Open, Save, New, Run? Там есть встроенный хэлп.

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 17:50:46
Meteor
Борис+ писал(а):ну пусть не програму а описание к ней тоже подойдет
Поищите в сети эту книгу. Достаточна полезна в плане освоения студии

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 19:23:34
Борис+
книгу нешол но хотелось бы описание для програмы тоже

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 19:34:10
Meteor
Хоть почитайте что ли.... там же рускким по белому описана работа в студии. Или я чего-то не догоняю?

Re: AVR studio 4 в вопросах и ответах

Добавлено: Вт июн 07, 2011 19:54:39
Борис+
спасибо начал читать

Re: AVR studio 4 в вопросах и ответах

Добавлено: Чт июн 09, 2011 18:30:25
IfoR
У меня тут ещё одна проблемка с макросами. Конкретно - это проклятое целочисленное деление! Как заставить студию в качестве результата 1/2 возвращать 0.5, а не 0?

UPD. А, всё, догадался! :) Здесь нужно как в си: указать, что делимое число является дробным, а не целым. Если написать 1.0/2 то возвращается, как и надо, 0.5! Пойду переписывать макросы. 8)

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 09:33:23
Nipochomus
Здравствуйте!
Подскажите каким образом на языке СИ можно опросить бит порта?
Т.е. if (B.5==1), нужно знать значение только одного бита, на других может быть что угодно.
Объясните пожалуйста на примере, так как в программировании не очень силён.

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 10:10:30
pyzhman
PINx.n
x - имя порта. A, B, C, D, E, F, G.
n - номер битика в нем.

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 10:11:57
ibiza11

Код: Выделить всё

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 могут быть любыми удобными для использования.

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 11:08:47
Мастер Ломастер
ibiza11 писал(а):В случае,если нужен просто флаг, а не определенный бит переменной можно воспользоваться битовыми полями
только при этом может увеличиться объем кода, к тому же доступ к битовому полю явно будет неатомарным даже для однобайтной переменной/структуры. чтобы попытаться избежать этих проблем, можно помещать такое битовое поле в РЕГИСТРОВУЮ переменную (если, конечно, вы умеете это делать правильно)

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 11:14:45
ChipKiller
Nipochomus писал(а):Подскажите каким образом на языке СИ можно опросить бит порта?
.. а логические операции кто мешает использовать?

Re: AVR studio 4 в вопросах и ответах

Добавлено: Пт июн 10, 2011 14:28:32
ibiza11
Мастер Ломастер писал(а):
ibiza11 писал(а):В случае,если нужен просто флаг, а не определенный бит переменной можно воспользоваться битовыми полями
только при этом может увеличиться объем кода, к тому же доступ к битовому полю явно будет неатомарным даже для однобайтной переменной/структуры. чтобы попытаться избежать этих проблем, можно помещать такое битовое поле в РЕГИСТРОВУЮ переменную (если, конечно, вы умеете это делать правильно)
не понял про неатомарный доступ, смотрите листинг:

Код: Выделить всё

// 764  if (Flag.ModeToutEn)
        LDI     R30, LOW(Flag)
        LDI     R31, (Flag) >> 8
        LDD     R16, Z+1
        SBRS    R16, 7
        RJMP    ??T0_OVF_0
как видно, переменная загружается не по частям, а одной командой LDD. причем как бы вы не удивлялись, но структура Flag у меня типа long. если вы боитесь, что регистры указывающие на ячейку изменятся, то могу вас заверить, что в Сях все обработчики прерываний сохраняют все Scratch регистры, используемые в теле прерывания, в CSTACK и возвращают в исходное состояние по выходу из обработчика.

Re: AVR studio 4 в вопросах и ответах

Добавлено: Ср июн 15, 2011 15:39:22
IfoR
Вот у меня ещё один вопрос. Делить я научился, например, запись 5.0/2 даёт 2.5 . Теперь вопрос: как мне у этого числа взять целую часть? Нужно вот почему. Есть запись, например:

Код: Выделить всё

LDI R25, 5.0/2
Т.е. в регистр R25 мы загружаем число 2, но на таких местах компилятор выражает своё полное недовольство тем, что число дробное и вообще он будет брать от него только дробную часть.
Вот тут и встаёт оговорённый выше вопрос, ибо стопка таких варнингов, при компиляции, совсем не радует глаз.

Пока придумал только одно решение, пишем такой макрос:

Код: Выделить всё

#define trunc(x) (1/(1.0/(x)))
Как видно, не очень элегантно... И всё таки оно не работает.
А есть ли что нибудь ещё?

ADD:
Методом случайного перебора была найдена такая стандартная функция: int()
Млин, ну есть ли где нибудь мануал по этим всем тонкостям?

Re: AVR studio 4 в вопросах и ответах

Добавлено: Ср июн 15, 2011 15:57:15
ibiza11
IfoR писал(а):А есть ли что нибудь ещё?
не понял на каком языке Вы пишете, дефайны у Вас через # как в Си, а команды ассемблера :)
попробуйте так:

Код: Выделить всё

#define x (char)(5.0/2)
LDI r16,x

Re: AVR studio 4 в вопросах и ответах

Добавлено: Ср июн 15, 2011 16:01:41
IfoR
Это сиссемблер - ассемблер с сишным препроцессором. :))

Да, в принципе, проблема уже решена. Извиняюсь за беспокойство, как всегда.
Ещё там нашёл стандартную функция abs(). Интересно, а есть ли там функция округления числа?

Нашёл гейд по AVR assembler на www.atmel.com/dyn/resources/prod_documents/AVRASM2.pdf Изображение. Ппц...
Функции округления нет, но тем не менее её не сложно реализовать:

Код: Выделить всё

#define round(x) int((x) + 0.5)