Нескольно простых вопросов о программировании AVR на Си.

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

kalobyte писал(а):настроена на внешний генератор или внутренний 8мгц
Так на внешний или на внутренний? Разница большая, в первом случае эти PB6/PB7 от порта отключаются. А во втором должны работать (если бит ASSR не установлен, что вроде так и есть).

PC6 - это да, сброс. PC7 не существует вообще.
Реклама
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение kalobyte »

и так ,и так делал
про пц7 забыл сказать

Asynchronous Status
Register – ASSR
там есть бит as2
When AS2 is written to zero, Timer/Counter 2 is clocked from the I/O clock, clkI/O. When AS2 is
written to one, Timer/Counter 2 is clocked from a crystal Oscillator connected to the Timer Oscillator 1 (TOSC1) pin. When the value of AS2 is changed, the contents of TCNT2, OCR2, and
TCCR2 might be corrupted.

по умолчанию он 0
:dont_know:
тематические ответы только в форуме, в приват не пишите
Реклама
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение slavokhire5 »

Переустановил винду, нужен компилятор AVR. пользовался winavr - легкий, удобный. но он не обновляется, нет автозаполнения и т.д. avr студия 6 в этом плане лучше, но уж очень она жирная и неповоротливая. есть еще какие-то альтернативы для си? *cvavr не предлагать =) IAR? он по удобству от блокнота не очень далеко ушел =)
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
ks0
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт фев 28, 2013 14:16:10

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение ks0 »

AVR-Eclipse
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение slavokhire5 »

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

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение ARV »

я работал и продолжаю только в Eclipse работать. про Code Block не могу ничего сказать, т.е. сравнивать, что лучше, не могу.
но в Eclipse практически ни разу не разочаровывался. сейчас актуальная версия Eclipse Mars
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение gavrasio »

ARV писал(а):Нет в Си булевских типов и переменных! Есть только ЧИСЛОВЫЕ результаты любых выражений, даже логических! Не фантазируйте понапрасну!
Ну почему же нет. Открываем учебник. Смотрим: Типы переменных: bool, размер, байт:1, значения: true или false.
А, если бы даже и не было, - то Си позволяет Вам создать любые типы переменных, которые Вы захотите. В С++ для этого есть понятие "Классы".
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Аlex »

Это в каком же Вы учебнике такое улицезрели ?
http://people.toiit.sgu.ru/Sinelnikov/P ... _Ritch.pdf стр. 41 - типы переменных.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение gavrasio »

Аlex писал(а):Это в каком же Вы учебнике такое улицезрели ?
http://people.toiit.sgu.ru/Sinelnikov/P ... _Ritch.pdf стр. 41 - типы переменных.
Учебник очень знаменитый, - его все знатоки хают, - это который "освой Си за три недели", автора не знаю, - у меня три тома с принтера на каждую неделю. На нём учился, - нормально. Но факт есть факт, - хочешь новые типы переменных, - учи "Классы"( если нет тебе подходящих). В чистом Си это есть "Структуры", но они по движениям стоят ниже "Классов".
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

gavrasio писал(а):
ARV писал(а):Нет в Си булевских типов и переменных! Есть только ЧИСЛОВЫЕ результаты любых выражений, даже логических! Не фантазируйте понапрасну!
Ну почему же нет. Открываем учебник. Смотрим: Типы переменных: bool, размер, байт:1, значения: true или false.
Не знаю, что за " очень знаменитый" учебник Вы там открывание, но он определённо не про язык C, в котором bool (true/false) точно нету.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение gavrasio »

Не знаю, что за " очень знаменитый" учебник Вы там открывание, но он определённо не про язык C, в котором bool (true/false) точно нету.
Посмотрите в Сети : Основные типы данных в языке C++. Конкретных ссылок не даю, потому что там много есть чего интересного.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

А при чём тут C++? Мы вроде про C говорили

Далее,
gavrasio писал(а):В чистом Си это есть "Структуры", но они по движениям стоят ниже "Классов".
В чистом C классов нет, так что непонятно, как Вы сравниваете структуры с чем-то несуществующим, да ещё и в пользу этого несуществующего.

А если уж говорить про C++, то особой разницы между классами и структурами там в принципе нет, кроме того, что элементы структуры по умолчанию public, а элементы класса - private.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение gavrasio »

WiseLord писал(а):
А если уж говорить про C++, то особой разницы между классами и структурами там в принципе нет, кроме того, что элементы структуры по умолчанию public, а элементы класса - private.
Я не буду вникать в дебри, - не поймут нас пользователи, в "структурах" нет, например, виртуальных функций, соответственно виртуальных деструкторов, нет перегрузки операторов и функций, нет исключений, нет множественного наследования и ещё много чего нет. Если есть интерес, - посмотрите любой хедер из стандартной библиотеки компилятора GCC, - там очень много можно увидеть и почерпнуть халву для себя. Вы можете даже уразуметь, что происходит, когда Вы вызываете, например, системную функцию while.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение gavrasio »

[quote="WiseLord"]А при чём тут C++? Мы вроде про C говорили =quote]
С++ принимает чистый Си. Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Siarzhuk »

gavrasio писал(а):Я не буду вникать в дебри, - не поймут нас пользователи
Для того, чтобы вас поняли - нужно как минимум владеть общепринятой терминологией. Вы же оной владеете весьма гомеопатически. В ваши дебри лезть нету никакой надобности - то, что уже засветили на их "опушке" вполне эпично чтобы пяток троллей стёр моляры до корней от зависти.
gavrasio писал(а):Если есть интерес, - посмотрите любой хедер из стандартной библиотеки компилятора GCC, - там очень много можно увидеть и почерпнуть халву для себя.
Вы и в самом деле полагаете, что люди, профессионально занимающеся этим делом десятки лет, найдут в заголовках компилятора какие-то откровения для себя? Это, например, как на пятнадцатом году владения автомобилем всем и каждому рассказывать про то как умно́ устроен воздушный клапан в его колёсах. Человеку если и лезть в хидеры то только затем, чтобы уяснить куда эти "кривожопы опенсорцные" © в очередной раз заныкали сто лет лежавший на виду стафф.
gavrasio писал(а):Вы можете даже уразуметь, что происходит, когда Вы вызываете, например, системную функцию while.
... и всё это лишь во силу кинестетического погружения во живительные потроха Хидеров Священных откороется по вере нашей, дерзайте, чада. Осанна во ГоЦаЦе́х и со Духом Твоим, Аменъ! "Системная функция while" ™ - экая чушъ, прости Господи. :P
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

gavrasio писал(а):Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Если под КВ понимается CodeVision - то это не C. Близкий по синтаксису язык, но не. Потому что все эти PORTD.0 = 1 и иже с ними в языке C недопустимы, так как имя переменной (элемента структуры) в C должно начинаться с буквы, а не быть числом.

Поэтому многие и не любят CodeVision, что переносимость кода плохая получается. Опять же, привязка к одной IDE, тогда как код под avr-gcc можно писать в чём удобно. Я, например, и под AVR, и под STM32 кодирую в QtCreator (имея все "плюшки" в виде автодополнения кода, рефакторинга и прочее), в ней же десктопные консольные/GUI приложения делаю при небходимости. И не вижу смысла держать зоопарк IDE.
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Rtmip »

Скорее всего он имел ввиду codeblocks (ImageCraftCB).
WiseLord писал(а):
gavrasio писал(а):Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Если под КВ понимается CodeVision - то это не C. Близкий по синтаксису язык, но не. Потому что все эти PORTD.0 = 1 и иже с ними в языке C недопустимы, так как имя переменной (элемента структуры) в C должно начинаться с буквы, а не быть числом...
А разве не буква здесь первая или что имеется ввиду?
Я так понимаю, что это макрос или дефайн? Определили так для удобства и все?
Переносимость очень плохая, точно. Мне, например, тяжело дается.
Правда, это может потому, что я не программист и языков не знаю. :facepalm:
Но ведь никто не мешает в CodeVision писать "по правилам" :))
И даже можно макросы переназвать по аналогии с Винавром, для переносимости лучшей.
Но, например, в ИАРе они тоже не очень совпадают с Винавром и никто не возмущается :))
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

WiseLord писал(а):Не знаю, что за "очень знаменитый" учебник Вы там открывание, но он определённо не про язык C, в котором bool (true/false) точно нету.
Ну вот зачем так категорично? Стандартом С аж 1999 года (ISO/IEC 9899:1999) предусмотрен булевский тип _Bool и стандартный инклуд-файл <stdbool.h>, в котором, среди прочего, определяется макрос bool, раскрывающийся в тот самый тип _Bool, а также макросы true и false.

Так что, пишите на здоровье что-то типа "bool bFlag = false;" - это будет строго соответствовать стандарту.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

Rtmip писал(а):А разве не буква здесь первая или что имеется ввиду?
Ролик после точки. Это либо элемент структуры и должен тогда начинаться с буквы (типа PORTD.b0}, либо это всё отдельная переменная, но в имени переменной не может быть точки.


По поводу bool типа в C99 я, пожалуй неправ. Просто всегда старался писать на ANSI C. Хотя и тут, думаю, реально, внутри, это какой-то целочисленный тип, к которому приводятся прочие типы при булевых операциях.
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

WiseLord писал(а):... всегда старался писать на ANSI C.
ANSI - это лишь американская контора, а ISO - она же International, как ни крути. Кроме того ANSI C - это уж и вовсе 1989 год, после которого ANSI перестала заниматься стандартом Си, уступив эту роль ИСе (ничего, что я ее просклонял? :))
Так что получается, что стандарт-то один, просто он поменялся в 1999-ом и, следовательно, после 1999-го писать в строгом соответствии со стандартом означает - писать согласно ISO/IEC 9899.
WiseLord писал(а):Хотя и тут, думаю, реально, внутри, это какой-то целочисленный тип, к которому приводятся прочие типы при булевых операциях.
"Реально, внутри" так происходит и в Паскале и в любом другом языке, так как ЦПУ ничего кроме чисел перемалывать не умеет. Флаги в нем, разумеется, есть, но они все относятся только к нему самому, и не являются данными исполняемой программы.
Rtmip писал(а):Но ведь никто не мешает в CodeVision писать "по правилам" :))
Сам CodeVision и мешает, так как правил этих не умеет. В разных местах велись целые столетние войны об этом, и на Электрониксе, и на ресурсах менее серьезных, вывод один - CodeVision не только имеет расширения, противоречащие стандарту, это бы еще куда ни шло, он самого стандарта не реализует. Впрочем, это не все его недостатки.
Rtmip писал(а):И даже можно макросы переназвать по аналогии с Винавром, для переносимости лучшей.
Но, например, в ИАРе они тоже не очень совпадают с Винавром и никто не возмущается :))
Далеко не все инклуд-файлы и макросы являются частью стандарта. Все, что сверх стандарта, можно определять и переопределять как угодно, нимало не нарушая стандарта. Вот если кто-то bool переопределит как "enum {false=-1, true=1};" вот это уже будет нарушением.
Ответить

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