реклама на сайте
подробности

 
 
> Не могу выйти из цикла, ATmega16; Компилятор: ICCV7 for AVR
Aneg
сообщение Dec 23 2010, 13:01
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 19-12-09
Пользователь №: 54 346



Компилятор: ICCV7 for AVR, http://www.imagecraft.com/
Целевой камень: ATmega16


ADCSR |= BIT(6); //запуск АЦП

while (ADIF != 1){ //ожидание установки флага ADIF завершения АЦП
}

UDR = 0x03; //контрольная отправка в СОМ порт


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Dec 23 2010, 13:10
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



ADIF - это номер бита, а не регистр. Проверять надо регистр ADCSRA на наличие этого флага. Вот так:
while (!(ADCSRA & (1<<ADIF))) {}

Здесь, сдвигом единички влево, из номера бита получается маска. Потом с помощью операции "&", бит ADIF вырезается из значения регистра статуса ADCSRA. Результат сравнения инвертируем операцией "!".

P.S. На ICCV7 я не работаю, поэтому для уточнения рекомендации смотрите сами, как определен ADIF в хидере: номер бита он или маска.
На моем любимом IAR'е sm.gif это выглядит много изящней и нагляднее:
while( !ADCSRA_ADIF) {}
Рекомендую.
Go to the top of the page
 
+Quote Post
Aneg
сообщение Dec 23 2010, 14:07
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 19-12-09
Пользователь №: 54 346



Спасибо заработало!
Я вчера тоже проинсталил IAR, но не нашел там генератор начального кода (Application Builder). Слыхал что у IAR это реализовано в отдельной программе. Подскажите как она называется?

Сообщение отредактировал IgorKossak - Dec 23 2010, 14:52
Причина редактирования: Лишнее цитирование
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 23 2010, 16:59
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Aneg @ Dec 23 2010, 22:07) *
Я вчера тоже проинсталил IAR, но не нашел там генератор начального кода (Application Builder). Слыхал что у IAR это реализовано в отдельной программе. Подскажите как она называется?

Я в свое время подсел на CodeVision с его чудесным визардом... Потом из-за ограниченности CV пересел на IAR. Сейчас сижу в Лине и все делаю в gcc. Абсолютно не страдаю по Венде, но...
CV вспоминаю недобрым словом, ибо все эти визарды -- это такая медвежья услуга, что... У меня до сих пор икается, что я иногда чего-то не знаю из-за того, что за меня это делал CV. Визард съел мой мозг. Теперь мне приходится его восстанавливать. Не совершайте моих ошибок. Визарды и генераторы начальных кодов -- это костыли, которые окончательно сдуют ваши мышцы. Или Вы не серьезно настроены на работу с МК?


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 24 2010, 03:14
Сообщение #5


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(zhevak @ Dec 23 2010, 22:59) *
Визарды и генераторы начальных кодов -- это костыли, которые окончательно сдуют ваши мышцы. Или Вы не серьезно настроены на работу с МК?

zhevak в целом прав. Действительно программирование, как дисциплина, довольно быстро мигрирует от собственно программного кода к ... постановкам галочек во многочисленных диалогах и закладках sm.gif. Через несколько лет такого упорного труда sm.gif выясняется, что данный программист мало чем отличается от фаната какой-нибудь компьютерной игры, познавший все ее пути и выходы. Т.е. собственно программировать он разучился, подсевши на визард. Соотвественно, при переходе на любую другую систему учится ему придется практически с полного нуля, поскольку те галочки, к котором он так привык, бесследно пропали, а вместо них возникли новые и совершенно незнакомые.

Вот только к IAR-компилятору сказанное отношения не имеет. По нынешним меркам это довольно спартанская система - почти ничего лишнего. Никакие "начальные коды" там не генерируются, а имеет место простое подключение стартового модуля, кои для каждого типа МК лежат в библиотеке в готовом виде. А не хочешь - отказывайся и пиши свой стартовый модуль или обходись без оного.

Т.е. в IARе по-прежнему присутствует экзешники компилятооров, линкеров и т.п., допускающими работу с командной строкой без использования IDE. Последняя здесь выполняет роль надстройки и пока не сильно покушается на то, чтобы узурпировать полную власть. Но соглашусь, что опасная тенденция не только существует, но и нарастает со временем - всё меньше програмистов помнят ключи и опции к своим компиляторам, а всё больше расположение галочек на визарадах.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016