|
Как перейти к началу функции по внешнему прерыванию?, подробнее внутри |
|
|
|
Aug 15 2008, 13:30
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Господа есть код в CodeVision примерно такой: Код void loop() { for (i=0;i<360;i++) { ................. }
}
void afterINT() { ..... }
void main () { while (1==1) { ...... loop(); ..... } } Как сделать чтобы по внешнему прерыванию от пина AVR функция loop завершала свою работу? выполнялась функция afterINT(), после чего вновь запускалась функция loop(). Пишу в CodeVision, но буду рад примеру и в WinAVR. И еще - в ATMEGA32 INT0, INT1 и INT2 чемн-ниьбудь отличаются?
|
|
|
|
|
 |
Ответов
|
Aug 19 2008, 08:25
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-12-07
Пользователь №: 33 057

|
Недавно в одной ветке, я обмолвился, что пишу на ассемблере и был подвергнут порицанию типа "до чего же надо себя не любить..."
Почитал я всё вышеизложенное на 3 страницах и решил, что у вас у всех слишком много свободного времени. В ассемблере эта задача решается парой строк. Естественно, этой парой строк можно пользоваться только тогда, когда понимаешь, что далаешь. Но если пишешь на языке высокого уровня, такого понимания никогда не будет. Для справки: на высоком уровне тоже пишу, но меня периодически посещает мысль, что кто-то пытается "держать меня за последнего лоха".
Теперь по сути темы. В одном устройстве у меня была похожая задача. При её решении вместо прерывания я использовал RESET и флаг "горячий/холодный старт".
|
|
|
|
Сообщений в этой теме
Зверюга Как перейти к началу функции по внешнему прерыванию? Aug 15 2008, 13:30 GDI ЦитатаКак сделать чтобы по внешнему прерыванию от ... Aug 15 2008, 13:38 Зверюга Цитатапрерывания, или вам надо чтобы после прерыва... Aug 15 2008, 13:46 GDI Можно в цикле что внутри loop() проверять некий фл... Aug 15 2008, 14:00 AHTOXA Можно в прерывании подменять адрес возврата. Но эт... Aug 15 2008, 14:14 bzx Цитата(AHTOXA @ Aug 15 2008, 18:14) Можно... Aug 15 2008, 16:14 rezident В plain Си функция не может перезапустить саму себ... Aug 15 2008, 15:01 Kuzmi4 2 Зверюга
ЦитатаА все-таки?
0 от 1 отличаются вро... Aug 15 2008, 15:01 Зверюга ЦитатаТолько не забудьте присвоить переменной флаг... Aug 15 2008, 16:00 zltigo Цитата(Зверюга @ Aug 15 2008, 18:00) Так ... Aug 15 2008, 16:16 rezident Цитата(Зверюга @ Aug 15 2008, 22:00) Так ... Aug 15 2008, 16:27 Зверюга Цитата{ cntr--;
}
Эта строчка "от балды... Aug 15 2008, 16:57 rezident Цитата(Зверюга @ Aug 15 2008, 22:57) Эта ... Aug 15 2008, 17:17  zltigo Цитата(rezident @ Aug 15 2008, 19:17) ...... Aug 15 2008, 17:49   rezident Цитата(zltigo @ Aug 15 2008, 23:49) грамо... Aug 15 2008, 19:42    zltigo Цитата(rezident @ Aug 15 2008, 21:42) ...... Aug 15 2008, 20:53     rezident Цитата(zltigo @ Aug 16 2008, 02:53) Масло... Aug 15 2008, 21:18      zltigo Цитата(rezident @ Aug 15 2008, 23:18) ..м... Aug 15 2008, 22:05      Aesthete Animus Цитата(rezident @ Aug 16 2008, 01:18) К т... Aug 15 2008, 23:12       rezident Цитата(Aesthete Animus @ Aug 16 2008, 05... Aug 15 2008, 23:34 Зверюга Спасибо, теперь я разобрался. Это точно для CodeVi... Aug 15 2008, 17:37 zltigo Цитата(rezident @ Aug 16 2008, 01:34) ОК.... Aug 16 2008, 08:58 rezident Цитата(zltigo @ Aug 16 2008, 14:58) Э... ... Aug 16 2008, 12:17  zltigo Цитата(rezident @ Aug 16 2008, 14:17) Я н... Aug 16 2008, 12:35 aaarrr Цитата(rezident @ Aug 16 2008, 16:17) Я н... Aug 16 2008, 12:36 rezident Цитата(aaarrr @ Aug 16 2008, 18:36) Так з... Aug 16 2008, 12:40  zltigo Цитата(rezident @ Aug 16 2008, 14:40) Доб... Aug 16 2008, 12:52   rezident Цитата(zltigo @ Aug 16 2008, 18:52) Для н... Aug 16 2008, 13:23    aaarrr Цитата(rezident @ Aug 16 2008, 17:23) Пос... Aug 16 2008, 13:43    zltigo Цитата(rezident @ Aug 16 2008, 15:23) А в... Aug 16 2008, 13:52 SSerge Вообще-то для таких "фокусов" придуманы ... Aug 16 2008, 21:20 aaarrr Цитата(SSerge @ Aug 17 2008, 01:20) Вообщ... Aug 16 2008, 21:43  SSerge Цитата(aaarrr @ Aug 17 2008, 04:43) Не дл... Aug 17 2008, 11:03   zltigo Цитата(SSerge @ Aug 17 2008, 13:03) Вот к... Aug 17 2008, 11:10   aaarrr Цитата(SSerge @ Aug 17 2008, 15:03)
Вы и... Aug 17 2008, 11:14 SSerge Цитата(zltigo @ Aug 17 2008, 18:10) Рассу... Aug 17 2008, 17:42 aaarrr Цитата(SSerge @ Aug 17 2008, 21:42) Чтобы... Aug 17 2008, 22:00 zltigo Цитата(SSerge @ Aug 17 2008, 19:42) Требу... Aug 17 2008, 22:15 @Ark Цитата(SSerge @ Aug 17 2008, 21:42) ... Р... Aug 18 2008, 13:37  AndrewN Прежде всего, спасибо всем за возможность освежить... Aug 18 2008, 15:25   aaarrr Цитата(AndrewN @ Aug 18 2008, 19:25) Для ... Aug 18 2008, 15:31   @Ark Цитата(AndrewN @ Aug 18 2008, 19:25) ... ... Aug 18 2008, 17:28    AndrewN Цитата(@Ark @ Aug 18 2008, 20:28) Вы, воз... Aug 18 2008, 19:06 GDI не кажется что за спором вы забыли одну важную вещ... Aug 18 2008, 10:04 zltigo Цитата(MMos @ Aug 19 2008, 10:25) В ассем... Aug 19 2008, 09:21 MMos Я суть темы понял так: при наступлении некоего соб... Aug 19 2008, 10:19 aaarrr Цитата(MMos @ Aug 19 2008, 14:19) Я суть ... Aug 19 2008, 10:25  MMos Цитата(aaarrr @ Aug 19 2008, 12:25) Не по... Aug 19 2008, 10:36 aaarrr Я тоже много лет программирую на ассемблерах (если... Aug 19 2008, 10:53 MMos Язык, на котором пишет программист, для меня не яв... Aug 19 2008, 11:16  Herz Цитата(MMos @ Aug 19 2008, 13:16) Язык, н... Aug 19 2008, 12:02   zltigo Цитата(Herz @ Aug 19 2008, 14:02) А что, ... Aug 19 2008, 13:34 SysRq Как вариант, функцию loop можно сделать полностью ... Aug 19 2008, 22:19 Dog Pawlowa Цитата(SysRq @ Aug 20 2008, 01:19) Как ва... Aug 20 2008, 05:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|