настроена на внешний генератор или внутренний 8мгц
Так на внешний или на внутренний? Разница большая, в первом случае эти PB6/PB7 от порта отключаются. А во втором должны работать (если бит ASSR не установлен, что вроде так и есть).
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
_________________ тематические ответы только в форуме, в приват не пишите
Переустановил винду, нужен компилятор AVR. пользовался winavr - легкий, удобный. но он не обновляется, нет автозаполнения и т.д. avr студия 6 в этом плане лучше, но уж очень она жирная и неповоротливая. есть еще какие-то альтернативы для си? *cvavr не предлагать =) IAR? он по удобству от блокнота не очень далеко ушел =)
_________________ Осилит дорогу идущий ---------- Пишу на Си за еду
я работал и продолжаю только в Eclipse работать. про Code Block не могу ничего сказать, т.е. сравнивать, что лучше, не могу. но в Eclipse практически ни разу не разочаровывался. сейчас актуальная версия Eclipse Mars
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Нет в Си булевских типов и переменных! Есть только ЧИСЛОВЫЕ результаты любых выражений, даже логических! Не фантазируйте понапрасну!
Ну почему же нет. Открываем учебник. Смотрим: Типы переменных: bool, размер, байт:1, значения: true или false. А, если бы даже и не было, - то Си позволяет Вам создать любые типы переменных, которые Вы захотите. В С++ для этого есть понятие "Классы".
Учебник очень знаменитый, - его все знатоки хают, - это который "освой Си за три недели", автора не знаю, - у меня три тома с принтера на каждую неделю. На нём учился, - нормально. Но факт есть факт, - хочешь новые типы переменных, - учи "Классы"( если нет тебе подходящих). В чистом Си это есть "Структуры", но они по движениям стоят ниже "Классов".
Не знаю, что за " очень знаменитый" учебник Вы там открывание, но он определённо не про язык C, в котором bool (true/false) точно нету. Посмотрите в Сети : Основные типы данных в языке C++. Конкретных ссылок не даю, потому что там много есть чего интересного.
В чистом Си это есть "Структуры", но они по движениям стоят ниже "Классов".
В чистом C классов нет, так что непонятно, как Вы сравниваете структуры с чем-то несуществующим, да ещё и в пользу этого несуществующего.
А если уж говорить про C++, то особой разницы между классами и структурами там в принципе нет, кроме того, что элементы структуры по умолчанию public, а элементы класса - private.
А если уж говорить про C++, то особой разницы между классами и структурами там в принципе нет, кроме того, что элементы структуры по умолчанию public, а элементы класса - private.
Я не буду вникать в дебри, - не поймут нас пользователи, в "структурах" нет, например, виртуальных функций, соответственно виртуальных деструкторов, нет перегрузки операторов и функций, нет исключений, нет множественного наследования и ещё много чего нет. Если есть интерес, - посмотрите любой хедер из стандартной библиотеки компилятора GCC, - там очень много можно увидеть и почерпнуть халву для себя. Вы можете даже уразуметь, что происходит, когда Вы вызываете, например, системную функцию while.
[quote="WiseLord"]А при чём тут C++? Мы вроде про C говорили =quote] С++ принимает чистый Си. Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Я не буду вникать в дебри, - не поймут нас пользователи
Для того, чтобы вас поняли - нужно как минимум владеть общепринятой терминологией. Вы же оной владеете весьма гомеопатически. В ваши дебри лезть нету никакой надобности - то, что уже засветили на их "опушке" вполне эпично чтобы пяток троллей стёр моляры до корней от зависти.
gavrasio писал(а):
Если есть интерес, - посмотрите любой хедер из стандартной библиотеки компилятора GCC, - там очень много можно увидеть и почерпнуть халву для себя.
Вы можете даже уразуметь, что происходит, когда Вы вызываете, например, системную функцию while.
... и всё это лишь во силу кинестетического погружения во живительные потроха Хидеров Священных откороется по вере нашей, дерзайте, чада. Осанна во ГоЦаЦе́х и со Духом Твоим, Аменъ! "Системная функция while" ™ - экая чушъ, прости Господи.
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Если под КВ понимается CodeVision - то это не C. Близкий по синтаксису язык, но не. Потому что все эти PORTD.0 = 1 и иже с ними в языке C недопустимы, так как имя переменной (элемента структуры) в C должно начинаться с буквы, а не быть числом.
Поэтому многие и не любят CodeVision, что переносимость кода плохая получается. Опять же, привязка к одной IDE, тогда как код под avr-gcc можно писать в чём удобно. Я, например, и под AVR, и под STM32 кодирую в QtCreator (имея все "плюшки" в виде автодополнения кода, рефакторинга и прочее), в ней же десктопные консольные/GUI приложения делаю при небходимости. И не вижу смысла держать зоопарк IDE.
Скорее всего он имел ввиду codeblocks (ImageCraftCB).
WiseLord писал(а):
gavrasio писал(а):
Если Вы пишете в КВ, - это Си. Но там библиотеки другие по сравнению с Винавром.
Если под КВ понимается CodeVision - то это не C. Близкий по синтаксису язык, но не. Потому что все эти PORTD.0 = 1 и иже с ними в языке C недопустимы, так как имя переменной (элемента структуры) в C должно начинаться с буквы, а не быть числом...
А разве не буква здесь первая или что имеется ввиду? Я так понимаю, что это макрос или дефайн? Определили так для удобства и все? Переносимость очень плохая, точно. Мне, например, тяжело дается. Правда, это может потому, что я не программист и языков не знаю. Но ведь никто не мешает в CodeVision писать "по правилам" И даже можно макросы переназвать по аналогии с Винавром, для переносимости лучшей. Но, например, в ИАРе они тоже не очень совпадают с Винавром и никто не возмущается
Не знаю, что за "очень знаменитый" учебник Вы там открывание, но он определённо не про язык C, в котором bool (true/false) точно нету.
Ну вот зачем так категорично? Стандартом С аж 1999 года (ISO/IEC 9899:1999) предусмотрен булевский тип _Bool и стандартный инклуд-файл <stdbool.h>, в котором, среди прочего, определяется макрос bool, раскрывающийся в тот самый тип _Bool, а также макросы true и false.
Так что, пишите на здоровье что-то типа "bool bFlag = false;" - это будет строго соответствовать стандарту.
А разве не буква здесь первая или что имеется ввиду?
Ролик после точки. Это либо элемент структуры и должен тогда начинаться с буквы (типа PORTD.b0}, либо это всё отдельная переменная, но в имени переменной не может быть точки.
По поводу bool типа в C99 я, пожалуй неправ. Просто всегда старался писать на 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};" вот это уже будет нарушением.
Сейчас этот форум просматривают: Игорь_396 и гости: 396
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения