AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
12.01.2014, 00:41
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Последний раз go to использовал лет пятнадцать назад. Некошерный оператор для Сей.
Без него гораздо приятней.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
12.01.2014, 00:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Глупость какая.
Это при разборе чужого кода (или старого своего) неудобно и только-то.
В откомпилированной программе все ветвления на переходах.
|
|
|
|
12.01.2014, 00:52
|
|
Временная регистрация
Регистрация: 21.02.2013
Сообщений: 87
Сказал спасибо: 70
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
ну если программа не большая то goto не вызывают затруднения
|
|
|
|
12.01.2014, 00:59
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от omercury
|
В откомпилированной программе все ветвления на переходах.
|
Охренеть! А я не знал, что Асм без этого не обходится...
Почитайте классиков наСИлия.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
12.01.2014, 01:23
|
|
Временная регистрация
Регистрация: 21.02.2013
Сообщений: 87
Сказал спасибо: 70
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
![Внимание!](images/smilies/icon_exclaim.gif) человек просто с утрировал проблему ))))
|
|
|
|
12.01.2014, 06:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от Fraktal
|
Godzilla82, я пробовал сделать через метку как Вы посоветовали , но что то студия у меня ругается на эти метки и пробовал объявлять как глобальные и как локальные.
|
Не знаю, что у вас за студия... Там вроде WinAVR стандартный. Там ничего не надо объявлять. Да и странно, что какая-то студия не следует стандартам языка Си.
Ну не нравится goto - используйте бесконечный цикл while(1) { }. Мне чисто визуально нравится goto. Иногда бывает полезным, когда надо вернуться к началу цикла из разных мест. Правда можно использовать continue;
Единственно, в студии PINA.0 не прокатит, нужно использовать (PINA & 1).
А ещё лучше:
PHP код:
|
#define BSTART 0b00000001
...
if( (PINA & BSTART) == 0 ) ...
|
Последний раз редактировалось Godzilla82; 12.01.2014 в 09:44.
|
|
|
Сказали "Спасибо" Godzilla82
|
|
|
12.01.2014, 09:15
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от Fraktal
|
просто с утрировал проблему
|
Не-а, с вечерировал.
Сравните тексты с мышиными ходами GO TO и то же самое без них.
А насчет проблемы - сами не делайте это проблемой. Это просто вопрос стиля - стройного или растрепанного. Си вам не Асм.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
12.01.2014, 09:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от akegor
|
Это просто вопрос стиля - стройного или растрепанного.
|
Не только. Вот типичный случай:
Ожидание какого-то условия начала процесса.
Далее на разных этапах по ходу процесса надо проверять ещё раз 5 несколько условий. И при невыполнении любого из них надо вернуться в начало ожидания процесса.
У меня с помощью goto получилось просто, логично и понятно.
Если без goto - пришлось бы делать лишнюю оболочку из вечного цикла и использовать continue для перехода в начало, и break для выхда.
|
|
|
|
12.01.2014, 10:04
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от Godzilla82
|
пришлось бы делать лишнюю оболочку из вечного цикла
|
Цикл никто не принуждает делать вечным. Есть ведь признак, по которому нужно находиться в цикле или выйти.
Трудно к этому прийти, но потом, простите, к мышиным ходам возврата нет.
К такому подходу подталкивает и обработка событий.
Кому интересно.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 12.01.2014 в 10:30.
|
|
|
|
12.01.2014, 10:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Re: Как программно отследить появление логического нуля на входе /Reset?
Сообщение от akegor
|
Цикл никто не принуждает делать вечным. Есть ведь признак, по которому нужно находиться в цикле или выйти.
|
Ну признак - это дополнительная переменная. Вы читали, что я написал?
Просто мне логичнее и проще поставить goto. Для меня дополнительная оболочка из вечного цикла (или не вечного с дополнительной переменной-флагом, которая не нужна при goto) и операторы перехода к следующей итерации или выхода из цикла кажутся нагромождением, которое портит наглядность программы, этаким костылём.
А так - дело вкуса, конечно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:03.
|
|