roboforum.ru

Технический форум по робототехнике.

Помогите в Си AVR

Re: Помогите в Си AVR

blindman » 13 июл 2011, 09:46

HarryStar писал(а):Если же у меня эта конфигурация битов постоянная, то число ничем не хуже

Это называется "write-only". Хуже, тем что невозможно читать
HarryStar писал(а):это лишь дело привычки.

плохой, вредной привычки

Re: Помогите в Си AVR

=DeaD= » 13 июл 2011, 09:48

Апофеоз такого подхода, как у этого визарда - вставлять в код программы сразу последовательность машинных команд, байтами :)

Re: Помогите в Си AVR

blindman » 13 июл 2011, 10:08

Ага. И в формате Intel HEX - чтоб можно сразу было программатором в контроллер залить

Re: Помогите в Си AVR

HarryStar » 13 июл 2011, 10:11

Предпочитаю вместо 1<<sdfsd там где не предполагаются изменения писать комментарий типа // 115200, 8+1
Это читается гораздо лучше и быстрее, чем эти битовые сдвиги. Как я уже говорил это дело привычки. Не вредной, не полезной. Просто они у каждого свои. Читаемость кода вещь важная, но ее можно обеспечить разными способами, особенно если пишешь для себя. МОЕ мнение - комментарий по русски более читабелен, чем битовые сдвиги. У ВАС - свои предпочтения.

Re: Помогите в Си AVR

=DeaD= » 13 июл 2011, 10:17

HarryStar писал(а):Предпочитаю вместо 1<<sdfsd там где не предполагаются изменения писать комментарий типа // 115200, 8+1

Кстати, при таких операциях главное не затрагивать дополнительные биты, которые к этому программному блоку не относятся. Если, скажем, в регистр разрешения прерываний записать значение, при котором не только включается нужное прерывание, но и выключаются остальные, а затем этот кусок кода использовать в программе, где задействованы другие прерывания, то ловля такого глюка будет достаточно веселым развлечением :)

Re: Помогите в Си AVR

blindman » 13 июл 2011, 10:18

HarryStar писал(а):Это читается гораздо лучше и быстрее, чем эти битовые сдвиги.

До тех, пока не понадобится кому-то этот код показать. Как по мне, лучше и быстрее вот так:
Код: Выделить всёРазвернуть
   // 16 MHZ/8 = 2 MHz timer clock, start timer
   TCCR1A = (1 << WGM11) | (1 << WGM10);
   TCCR1B = (1 << WGM12) | (1 << WGM13) | (2 << CS10);

Re: Помогите в Си AVR

Michael_K » 13 июл 2011, 10:50

blindman, вы конечно абсолютно правы. В принципе. В целом.
Только вот пример ваш не менее смешной.

Может у меня, конечно, обострение склероза с маразмом...
Но лично для меня записи:

TCCR1B = (1 << WGM12) | (1 << WGM13) | (2 << CS10);
и
TCCR1B = 0x34;

практически одинаково нечитаемы - один фиг в даташит лезть :)

Re: Помогите в Си AVR

blindman » 13 июл 2011, 10:56

По крайней мере (2 << CS10) мне кое-о чем говорит. и без даташита

Re: Помогите в Си AVR

HarryStar » 13 июл 2011, 13:04

Так в том и суть что ВАМ это кое о чем говорит. Зачем всех подводить под свою гребенку?
Давайте еще начнем обсуждать сколько пробелов надо ставить перед строками и на сколько смещать между вложенными {}.
В вашем примере есть еще одно ВАШЕ личное предпочтение. У вас комментарии на английском. Я предпочитаю русский :)

Думаю мы сильно уклонились от темы. Предлагаю создать топик "Личные предпочтения в оформлении программ на Си" и там продолжить с конкретными примерами оформления.

Re: Помогите в Си AVR

blindman » 13 июл 2011, 13:15

TCCR1B = 0x34 вообще никому ни о чем не говорит. И комментарии на английском тоже не просто так. Это из той же оперы - чтоб понятно было тому, кто будет читать.

Re: Помогите в Си AVR

osc » 13 июл 2011, 22:16

Как тему то раскурили :)

Re: Помогите в Си AVR

EasyTech » 22 июл 2011, 13:07

Делаю мини сумо, вопрос такой, мне нужно подключить 4 мотора к одному ДД L298N это реально?
Если из подключить последовательном соединение моторов сила тока = const . Это реально подключить такие моторы?
http://robotshop.su/e-store/catalog/198/1020/ вот моторы

Очень нужен кач-ый ответ, а то дело стоит :(

Re: Помогите в Си AVR

EasyTech » 22 июл 2011, 19:50

Блин начал работать в avrstudio4 .
http://easyelectronics.ru/avr-uchebnyj- ... ast-1.html
что то не получается ...ъ
Нажимаю компилировать код, а мне пишет ошибку в makefile.
Я его сделал!! делаю всё точь точь по гайду :(
1.JPG

Re: Помогите в Си AVR

HarryStar » 22 июл 2011, 20:21

Там расписана процедура автоматической генерации makefile через мастер. У вас сгенерился этот файл? Он лежит в папке вашего проекта?

Re: Помогите в Си AVR

EasyTech » 22 июл 2011, 20:35

да сгенерировал, а дальше тупик пишет у вас нету фаила расширения .о незнаю где искать :((

Добавлено спустя 8 минут 7 секунд:
где можно купить поле для лайнтрейсера, желательно в россии

Добавлено спустя 4 минуты:
в чем разница разработки программы winavr компилятора или avrstudio4
А то я в winavr компиляторе (notepad какой-то) уже работал много а в аврстудио только шью мк. :cry:


Rambler\'s Top100 Mail.ru counter