Здравствуйте.
Недавно начал заниматься программированием микроконтроллеров на СИ++ в среде WinAVR.
Знания получены лишь с этого сайта, из статей "Шаг за шагом". Мне хочется делать всё более сложные проекты но не могу найти никаких полезных статей в интернете. Может ли кто помочь?
Проблема вот в чём: я хочу знать существует ли такая функция которая бы возвращала программу в то положение куда я захочу при выполнении какого-ибо условия. Ну например выполняется обработка прерывания по нажатию кнопки: кнопка нажата делаем что-то, затем второе разветвление: если кнопка до сих пор нажата то как мне перейдти к выполнению той операции которая выполнялась после первой проверки.
Заранее спасибо.
И ещё, не могли бо вы подсказать какие либо интернет ресурсы посвящённые данной теме(программирование микроконтроллеров на СИ). Спасибо
Роботов
Отправлено: 24 Июля, 2012 - 08:59:08
Гуру
Сообщений всего: 1350
Дата рег-ции: Июнь 2011
Рекомендую вот этот ресурс: http://avr123.nm.ru/
Всё очень подробно разжевано, многие по нему учились.
Artem
Отправлено: 24 Июля, 2012 - 09:41:27
Главнокомандующий
Сообщений всего: 347
Дата рег-ции: Май 2012
Я уже несколько раз натыкался на этот курс, но что то там структура какая-то непонятная, но я попробую, спасибо.
Но всё же не мог бы кто подсказать на счёт этой функции которую я описывал в начале.
anar
Отправлено: 24 Июля, 2012 - 11:42:03
Главнокомандующий
Сообщений всего: 441
Дата рег-ции: Июнь 2011
Си++ достаточно сложный язык программирования(там очень тяжело реализовать шим, сконфигурировать ацп и т.д) лучше начните с бейсика и компилируйте программы в баском авр, а потом потихоньку перейдите на си++. (Добавление)
Artem пишет:
Проблема вот в чём: я хочу знать существует ли такая функция которая бы возвращала программу в то положение куда я захочу при выполнении какого-ибо условия. Ну например выполняется обработка прерывания по нажатию кнопки: кнопка нажата делаем что-то, затем второе разветвление: если кнопка до сих пор нажата то как мне перейдти к выполнению той операции которая выполнялась после первой проверки.
Для этого есть оператор goto.
Гость
Отправлено: 24 Июля, 2012 - 14:05:32
УДАЛЁН
нету оператора goto, нету.
после обработки прерывания программа автоматом вернется на старое место (а вот данные и состояние регистров может поменяться).
а для того, чтобы повторять выполнение каких-то действий, пока действительно условие- есть while:
while(knopf_druken==1)
{
make_all_deals();
};
anar
Отправлено: 24 Июля, 2012 - 16:46:11
Главнокомандующий
Сообщений всего: 441
Дата рег-ции: Июнь 2011
Цитата:
нету оператора goto, нету.
А это, что тогда :http://radio-hobby.org/modules/i.../page.php?id=912 х.. что ли? (Добавление)
Да этот оператор использовать не советуется, но запретный плод сладок .Лично я его часто использую, и никаких проблем пока не было.
существует ли такая функция которая бы возвращала программу в то положение куда я захочу
Artem пишет:
на счёт этой функции которую я описывал в начале.
нет, такой функции нет в Си. Вы достаточно ее описали чтобы написать самому (опытный сишник ее в дефайн впехнет)
Или вы хотите просто восстановить указатель команд из Си?
anar
Отправлено: 27 Июля, 2012 - 13:29:55
Главнокомандующий
Сообщений всего: 441
Дата рег-ции: Июнь 2011
А за, что Predator удалили? (Добавление)
Наши ряды редеют .
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.