-
Постов
1 085 -
Зарегистрирован
-
Посещение
Весь контент 777777
-
Как интересно. А она продолжает развиваться? Разве ее не заменили пятеркой?
-
Этот прием используеся для других целей, например чтобы не выполнять последующие условия при выполнении первых: do { if(А) { /* действие для А */ break; } if(Б) { /* действие для Б */ break; } if(В) { /* действие для В */ break; } } while (0); Это придумали goto-ненавистники, они считают что это уродство лучше чем goto. А чтобы ограничить видимость переменной достаточно просто ограничить ее фигурными скобками. Никто не запрещает ставить их в любом месте программы.
-
Ничего невероятного. Я находил баг даже в Visual Studio 7.1, правда не критичный - переменная const не воспринималась компилятором как const. А уж Кейл - не самая передовая фирма. µVision V4.00u Toolchain: RealView MDK-ARM Version: 4.03a Toolchain Path: BIN40\ C Compiler: Armcc.Exe V4.0.0.524 Assembler: Armasm.Exe V4.0.0.524 Linker/Locator: ArmLink.Exe V4.0.0.524 Librarian: ArmAr.Exe V4.0.0.524 Hex Converter: FromElf.Exe V4.0.0.524 CPU DLL: SARMCM3.DLL V4.03a Dialog DLL: DARMSTM.DLL V1.45b Target DLL: BIN\UL2CM3.DLL V1.62 Dialog DLL: TARMSTM.DLL V1.43 А вы не любите пролетариат! Именно так и пришлось поступить - все члены сделал volatile
-
volatile применяется к переменным, а не к объявлениям. Но я пробовал писать typedef volatile struct _CCommand { ... u8 Data[15]; } CCommand; - не помогает, хотя компилятор и не ругается.
-
Я тоже в шоке. typedef struct _CCommand { u8 Length; u8 Cmd : 4; u8 Addr : 4; vu8 Data[15]; } CCommand; volatile CCommand Command; Если Data[15] объявлено как u8, то не работает. Если Command без volatile, то тоже.
-
Для этого надо как минимум иметь легальный Кейл. И вообще, если вам нечего ответить - стоит ли засирать форум?
-
Имеется структура, которая используется в прерывании, поэтому объявляю ее volatile. Однако компилятор выкидывает обращение к полям этой структуры. То есть, к примеру, пишу if(Command.Data[0] == 1) { ... } а компилятор считает, что Data[0] всегда не равно 1 и поэтому выкидывает содержимое скобок. Оказывается, нужно еще и каждое поле структуры объявлять volatile! Это что, нормально? Я же саму переменную Command объявил volatile, этого мало? По стандарту так положено? Или глюк в Кейле?
-
Я имел в виду цифровой сигнал.
-
С таким же успехом любой операционник можно назвать Variable Gain Amplifiers - ведь его усиление можно "легко" поменять, изменив резисторы. Нужен усилитель, усиление которого меняется подачей на него сигнала.
-
Не хочу ограничивать вашу фантазию :) Частота передаваемого сигнала - до 25...30 кГц, с гармониками наверное до 300...500.
-
Дифусилитель с переключаемым коэффициентом
777777 опубликовал тема в Вопросы аналоговой техники
Можно переключаемый ступенчато - 1, 4, 16... -
Вопрос по си
777777 ответил Павел_Б тема в Программирование
А таким способом пользоваться не следует. Потому что если придется сравтивать не с 2, а например с 8, то результат будет неправвильным. -
AvrStudio + JTAGICEmkII
-
Есть подозрение, что стек налазит на данные. Как это определить? Есть ли какие-то отладочные средства или вручную изгаляться?
-
Только если у него есть доступ к некой эталонной частоте. Иначе никак.
-
Да, точняк! По аппнотам лазил, а эта как-то прошла мимо :(
-
В мегах есть команды, которые после умножения сдвигают результат влево. Фича полезная для дробных вычислений с фиксированной точкой, но обычно прихрдится иметь дело с как минимум двухбайтовыми данными. Можно ли эти команды приспособить для умножения двухбайтовых чисел?
-
Это не совсем смена, это просто модифицированный кристалл. У Atmega168 есть другие фичи - ее температурный диапазон 125 градусов, а у Atmega168-15AD - 150. Поскольку альтернативы им нет, вряд ли их снимут с производства.
-
Нет, напряжение на диоде точно не упадет. :) Ток, правда, может.
-
The FOC1A/FOC1B bits are only active when the WGM13:0 bits specifies a non-PWM mode. А вообще код странный. Что вы хотите от него добиться? На выходе OC1B ШИМ есть?
-
Скорее всего макрос случайно оказался рекурсивным.
-
EEPROM ATtiny2313
777777 ответил andrey videoplus тема в AVR
Наверно удивительно?? Конечно удивительно! А сброс как вы на него подаете? Он-то нужен независимо от того, работаете вы с EEPROM или нет. -
Запись идет действительно долго, поэтому глупо сидеть в цикле и ждать готовности, для этого у самого еепрома есть свои прерывания, посредством которых он сообщает об окончании записи. Если программу написать столь же грамотно, как этот текст, то непременно заглючит. Но в AVR никаких предпосылок к этому нет. Если у вас запись в еепром выполняется в "приреванни", то это архитектурная ошибка. Если же при этом программа висит там ожидая окончания записи, то за такое нужно отрывать руки. В таких случаях делают кольцевой буфер, программа записывает туда информацию, необходимую для записи, а подпрограмма обработки прерываний в фоновом режиме, не торопясь, их записывает.
-
Источник питания ФЭУ
777777 ответил Serdg тема в Вопросы аналоговой техники
Это что же, у трансформатора киловольтная вторичная обмотка? ИМХО лучше обмотку для надежности сделать поменьше, но увеличить число ступеней умножителя. -
как программировать ATMEGA168 ?
777777 ответил skyeye тема в MCS51, AVR, PIC, STM8, 8bit
ИНтересно, а какие контакты у него "соответствующие"? Для программирования нужен программатор. Проще всего купить AVRISP mkII, он стоит совсем недорого, зато стопроцентно работает.