#define F_CPU _delay_us(); _delay_ms();

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение ARV »

Zat писал(а):Мне не нужно бегать по хедерам и искать эту константу.
как бы для некоторых констант есть особое место - глобальное... для всего проекта сразу. Например, для F_CPU, DEBUG и т.п. и помещать их в заголовки не совсем логично.
mazda писал(а):принято или не принято, когда то было не принято ездить на авто, это было плохим тоном. Если нет технических ошибок и всё работает на современном ПО то какая разница что где принято
ну да, запятыми пользоваться тоже - зачем? условности какие-то - понятно же, что написано, да?

всякие дураки книжки пишут про структурирование кода, беспокоятся об изоляции модулей... в С++ и C# namespace какие-то добавили специально... MISRA какая-то придумана идиотами... а оказывается, вам и так хорошо...

ну, я рад за вас, что еще сказать.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Zat
Встал на лапы
Сообщения: 119
Зарегистрирован: Пн ноя 02, 2009 05:27:41
Откуда: С-Пб

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Zat »

[uquote="ARV",url="/forum/viewtopic.php?p=3246852#p3246852"]как бы для некоторых констант есть особое место - глобальное... для всего проекта сразу. Например, для F_CPU, DEBUG и т.п. и помещать их в заголовки не совсем логично.[/uquote]
Если нужны глобальные константы, то создайте const.h, определите там все что глобальное
и в нужном месте просто делайте #include "const.h". Но будет все логичнее, в одном месте, и глобально.
Куда уж проще.
Реклама
Аватара пользователя
mazda
Потрогал лапой паяльник
Сообщения: 382
Зарегистрирован: Сб фев 18, 2012 14:50:22

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение mazda »

видимо ARV и Ярославом это один и тот же человек который заходит под разными никами что бы потролиться
я его в гугл на дрц прогнал, вы знаете, пи-када нет.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Ярослав555 »

[uquote="Zat",url="/forum/viewtopic.php?p=3246864#p3246864"][uquote="ARV",url="/forum/viewtopic.php?p=3246852#p3246852"]как бы для некоторых констант есть особое место - глобальное... для всего проекта сразу. Например, для F_CPU, DEBUG и т.п. и помещать их в заголовки не совсем логично.[/uquote]
Если нужны глобальные константы, то создайте const.h, определите там все что глобальное
и в нужном месте просто делайте #include "const.h". Но будет все логичнее, в одном месте, и глобально.
Куда уж проще.[/uquote]
если глобальная константа определена в свойствах проекта, а не в тексте, то ее видно без инклюда. Иногда так проще и правильнее.

Добавлено after 1 minute 10 seconds:
[uquote="mazda",url="/forum/viewtopic.php?p=3246877#p3246877"]видимо ARV и Ярославом это один и тот же человек который заходит под разными никами что бы потролиться[/uquote]
Видимо. И мировой заговор против вас. Удачи с вашей паранойей :)))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
mazda
Потрогал лапой паяльник
Сообщения: 382
Зарегистрирован: Сб фев 18, 2012 14:50:22

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение mazda »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3246884#p3246884"]глобальная константа определена в свойствах проекта[/uquote]

но зачем? где тут смысл? что бы запутать компилятор или себя?
я его в гугл на дрц прогнал, вы знаете, пи-када нет.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение ARV »

mazda писал(а):но зачем? где тут смысл?
а это зачем и где тут смысл?
mazda писал(а):всё работает на современном ПО то какая разница что где принято
вам ли смысл искать?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Ярослав555 »

[uquote="ARV",url="/forum/viewtopic.php?p=3246895#p3246895"]вам ли смысл искать?[/uquote]
:)))
Аватара пользователя
Zat
Встал на лапы
Сообщения: 119
Зарегистрирован: Пн ноя 02, 2009 05:27:41
Откуда: С-Пб

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Zat »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3246884#p3246884"]если глобальная константа определена в свойствах проекта, а не в тексте, то ее видно без инклюда. Иногда так проще и правильнее.[/uquote]
Вот как раз это совсем ошибочно. Если нужно изменить размер стека, добавить какие-то библиотеки (прилинковать) или если частота
камня определяется в свойствах проекта, то возможно, тут и уместно так сделать. Но я раза 2 или 3 попадал на том, что
определив все константы (не более 1-2 шт) в проекте приходилось переносить в инклуды. Т.к. бывают случаи, при смене среды разработки
(я пишу в IAR, Keil и AVRStudio), проекты не подхватываются просто так. Нужно создать новый и добавить все файлы. Очень тяжко потом
вспоминать что же я там в свойствах проекта писал. Приходится потом отслеживать по ошибкам что глючит и прописывать опять в инклуды.
Вообщем, я два, три нет 4-й раз на грабли не хочу наступать. Все равно приду к тому же.
Аватара пользователя
mazda
Потрогал лапой паяльник
Сообщения: 382
Зарегистрирован: Сб фев 18, 2012 14:50:22

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение mazda »

кажется они просто не хотят признавать свою вину
я его в гугл на дрц прогнал, вы знаете, пи-када нет.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Ярослав555 »

[uquote="Zat",url="/forum/viewtopic.php?p=3246916#p3246916"]Т.к. бывают случаи, при смене среды разработки
(я пишу в IAR, Keil и AVRStudio), проекты не подхватываются просто так. Нужно создать новый и добавить все файлы. Очень тяжко потом
вспоминать что же я там в свойствах проекта писал. Приходится потом отслеживать по ошибкам что глючит и прописывать опять в инклуды.
Вообщем, я два, три нет 4-й раз на грабли не хочу наступать. Все равно приду к тому же.[/uquote] Я смотрю вы любите очевидные вещи писать. Ну я же написал - ИНОГДА. Иногда люди работают в одной среде, такое случается.
Аватара пользователя
mazda
Потрогал лапой паяльник
Сообщения: 382
Зарегистрирован: Сб фев 18, 2012 14:50:22

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение mazda »

среда не определяет способ работы а только усложняет его и делает немного удобней и всё остальное зависит от языка который может и не зависить
я его в гугл на дрц прогнал, вы знаете, пи-када нет.
Аватара пользователя
Мокренькая кисонька
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт сен 27, 2011 07:28:44
Откуда: Москва
Контактная информация:

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение Мокренькая кисонька »

ARV, спасибо за науку! Плюсанул в карму.
Осталось разобраться насчет UL, понятно, что это unsigned long число, но как задавать его в студии?
В 4-ке это было в свойствах проекта, писалось обычным числом в герцах, например 9600000Hz.
В 7-ке (она же Микрочип Студио) чуть посложнее с этим, но результат не меняется, если писать F_CPU=9600000 или F_CPU=9600000UL.
Для начала хотелось бы понять, а какой длины это unsigned long число? Отталкиваться от каких систем? 32-х битных или 8-и битных?
Ну и второе, а надо ли оно, если среда и так все хорошо понимает?
Ну и третье, а что делать, если частота низкая, например 16кГц всего (да, такое иногда бывает)?
Все эти вопросы просто для того, чтобы делать правильно, на самом деле все корректно работает на любых частотах как без, так и L или UL.
ИзвЕните от слова - веник, ИзвИните от слова - вина.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение ARV »

я могу ошибаться, потому как сколько бы я про Си ни узнавал, все равно оказывается, что в стандарте есть ещё нюансики, переворачивающие мои знания с ног на голову...

но по сути вопроса думаю так. само по себе чтсло-константа будет воспринято правильно, если будет само по себе - компилятор и с UL, и без поймет 9600000 так, как надо... но только до момента, когда это число попадет в выражение. результат 1+9600000 будет совсем не 9600001, как могло бы показаться... а вот 1+9600000UL даст правильный результат.

как-то так...

я могу вам дать пару советов, которые "настоящие программисты" сразу заплюют: всегда ставьте скобки в сложных выражениях, особенно в логических выражениях, на надеясь на память о приоритетах операций и всегда добавляйте UL к константам, если есть вероятность, что в выражении с их участием может получиться результат (даже промежуточный!) больше 65535. и будет вам счастье
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
veso74
Поставщик валерьянки для Кота
Сообщения: 1916
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: #define F_CPU _delay_us(); _delay_ms();

Сообщение veso74 »

[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4274994#p4274994"]... Для начала хотелось бы понять, а какой длины это unsigned long число? Отталкиваться от каких систем? 32-х битных или 8-и битных? ...[/uquote]
Включите <stdint.h> и если удобно, используйте int8_t/uint8_t, int16_t/uint16_t, int32_t/uint32_t и т.н. - видно битность.
Ответить

Вернуться в «AVR»