|
Приоритет прерываний, и прерывание прерываний |
|
|
|
 |
Ответов
|
Sep 1 2008, 09:49
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата И как вы себе представляете правку старшего байта вне прерывания? Вполне просто. Изредка запускаем проверку, не изменился ли старший бит pos и если изменился - меняем старший байт. Заодно там, где необходимо значение pos тоже выполняем такую проверку. Цитата Из вашего кода у меня получилось 28 тактов, да ещё без sei. Код для INT0 не предусматривал SEI. Тактов, кстати, 27, если RJMP c вектора. Цитата Не могу понять почему компайлер у вас не сохраняет SREG? А порт 0x3F - это что по Вашему? Цитата Нельзя ли посмотреть на код с 16-битными t и pos? А смысл? Цитата Ваш код какой-то левый. Выбирайте выражения. ...Чуть позже... С банальной проверкой старшего бита я погорячился малость, там надо проверять изменение 2х старших бит из 00 в 11 и наоборот. Это и будет обозначать инкремент или декремент старшего байта. Но не суть, такую проверку можно выполнить один раз на, скажем, 50 прерываний INT0. Цитата А в WinAVR можно результат работы компилятора как в посте Rst7 Как-то там через зопу. Смотрите elfdump или objdump. Запускаете его с ключиком (не помню каким, в хелпе глянете) и он дампит выходной эльф-файл с включением строк исходника. Цитата да и где взять время выполнения команд? В даташите на контроллер. В табличке с набором команд. Цитата Вообщем как можно быстро расчитать время обработки прерывания? Я руками считаю. Навык, выработанный годами
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Sep 1 2008, 09:52
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Rst7 @ Sep 1 2008, 08:35)  Вполне просто. Изредка запускаем проверку, не изменился ли старший бит pos и если изменился - меняем старший байт. Заодно там, где необходимо значение pos тоже выполняем такую проверку То есть был 127, стал 128 - меняем старший байт? А как тогда быть с полным 16-битным pos? В 7 бите pos будет знак? Да и что значит изредка? А вдруг пропустим, а пропуск означает катастрофу. Цитата(Rst7 @ Sep 1 2008, 08:35)  А порт 0x3F - это что по Вашему? Прошу пардону, слона-то я и не приметил.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
PhX Приоритет прерываний Aug 28 2008, 16:53 zltigo Цитата(PhX @ Aug 28 2008, 18:53) ...как
П... Aug 28 2008, 17:11 smac Цитата(zltigo @ Aug 28 2008, 21:11) Поско... Aug 28 2008, 19:28  zltigo Цитата(smac @ Aug 28 2008, 21:28) поэтому... Aug 28 2008, 19:40   defunct Цитата(zltigo @ Aug 28 2008, 22:40) Если ... Aug 28 2008, 19:47    zltigo Цитата(defunct @ Aug 28 2008, 21:47) вот ... Aug 28 2008, 20:02     defunct Цитата(zltigo @ Aug 28 2008, 23:02) Так с... Aug 28 2008, 20:35      zltigo Цитата(defunct @ Aug 28 2008, 22:35) ...п... Aug 28 2008, 20:54       defunct Цитата(zltigo @ Aug 28 2008, 23:54) Нет. ... Aug 28 2008, 21:10        zltigo Цитата(defunct @ Aug 28 2008, 23:03) очев... Aug 28 2008, 21:14         defunct Цитата(zltigo @ Aug 29 2008, 00:14) Поско... Aug 28 2008, 21:26          zltigo Цитата(defunct @ Aug 28 2008, 23:26) не с... Aug 28 2008, 21:48           defunct Цитата(zltigo @ Aug 29 2008, 00:48) Повто... Aug 28 2008, 21:59            zltigo Цитата(defunct @ Aug 28 2008, 23:59) гм?... Aug 28 2008, 22:37             defunct Цитата(zltigo @ Aug 29 2008, 01:37) Ладно... Aug 29 2008, 00:19              zltigo Цитата(defunct @ Aug 29 2008, 02:19) Они ... Aug 29 2008, 08:18               defunct Цитата(zltigo @ Aug 29 2008, 11:18) -При ... Aug 29 2008, 11:00                =GM= Прям операционка получилась...кооперативная(:-). Aug 29 2008, 11:06                 zhevak Цитата(=GM= @ Aug 29 2008, 17:06) Прям оп... Aug 29 2008, 16:43                 Боинг749 Вот кстати ещё тема с похожей тематикой (касающаяс... Aug 29 2008, 19:15   smac Цитата(zltigo @ Aug 28 2008, 23:40) INT0 ... Aug 28 2008, 20:03   SasaVitebsk Цитата(zltigo @ Aug 28 2008, 22:40) INT0 ... Aug 28 2008, 20:23    zltigo Цитата(SasaVitebsk @ Aug 28 2008, 22:23) ... Aug 28 2008, 20:46     defunct Цитата(zltigo @ Aug 28 2008, 23:46) В это... Aug 28 2008, 20:54 defunct Цитатапри входе в прерывания запретить индивидуаль... Aug 28 2008, 19:28 =GM= Цитата(PhX @ Aug 28 2008, 15:53) как сдел... Aug 28 2008, 23:11 zltigo Цитата(=GM= @ Aug 29 2008, 01:11) ..да и ... Aug 28 2008, 23:23 bzx Цитата(PhX @ Aug 28 2008, 20:53) Прерыван... Aug 29 2008, 17:52 zhevak Взгляд со стороны. Ибо в жаркой дискусси я неучвст... Aug 29 2008, 18:48 PhX Честно говоря не ожидал, что проблема вызоет такую... Aug 30 2008, 06:26 Сергей Борщ Цитата(PhX @ Aug 30 2008, 09:26) Как ли э... Aug 30 2008, 08:42 Rst7 Дам пару советов. Во первых, код написать таким об... Aug 30 2008, 08:31 =GM= Цитата(Rst7 @ Aug 30 2008, 07:31) Общая и... Aug 31 2008, 22:01  defunct Цитата(=GM= @ Sep 1 2008, 01:01) А вообще... Aug 31 2008, 23:23   Dog Pawlowa Цитата(defunct @ Sep 1 2008, 02:23) Тайме... Sep 1 2008, 07:36    PhX Цитата(Dog Pawlowa @ Sep 1 2008, 12:36) Н... Sep 1 2008, 08:07     defunct Цитата(PhX @ Sep 1 2008, 11:07) Реально п... Sep 1 2008, 10:43      =GM= Цитата(defunct @ Sep 1 2008, 09:43) Если ... Sep 1 2008, 11:03     ReAl Цитата(PhX @ Sep 1 2008, 11:07) p.s. А в ... Sep 1 2008, 11:00     defunct Цитата(PhX @ Sep 1 2008, 11:07) p.s. А в ... Sep 1 2008, 11:34 Rst7 Цитата if (!(PORTC & (1 << 3))) //... Aug 30 2008, 09:27 Сергей Борщ Цитата(Rst7 @ Aug 30 2008, 12:27) Это над... Aug 30 2008, 09:38  sKWO Цитата(Сергей Борщ @ Aug 30 2008, 12:38) ... Aug 30 2008, 09:45 Rst7 Цитатаоэтому делать ее в этом месте вполне безопас... Aug 30 2008, 10:14 defunct ЦитатаTCNT1 += 0x10000 - 62500 / Frq;
выбросить вс... Aug 30 2008, 20:59  Боинг749 Цитата(defunct @ Aug 31 2008, 00:59) выбр... Aug 30 2008, 21:08   defunct Цитата(Боинг749 @ Aug 31 2008, 00:08) Как... Aug 31 2008, 07:34    Боинг749 Цитата(defunct @ Aug 31 2008, 11:34) Прям... Aug 31 2008, 07:40   Сергей Борщ Цитата(Боинг749 @ Aug 31 2008, 00:08) НАП... Aug 31 2008, 10:39  PhX Цитата(defunct @ Aug 31 2008, 01:59) выбр... Aug 31 2008, 06:43 Боинг749 Цитата(PhX @ Aug 28 2008, 20:53) Есть три... Aug 30 2008, 17:52 SasaVitebsk В одном из изделий у меня использовался следующий ... Aug 30 2008, 21:54 Rst7 Цитатас какого момента вы были наделены правами и ... Aug 31 2008, 14:14 Rst7 ЦитатаИнтересно бы взглянуть на код
Код RSEG COD... Sep 1 2008, 05:49 =GM= Цитата(Rst7 @ Sep 1 2008, 04:49) А старши... Sep 1 2008, 09:23 PhX Цитата(Rst7 @ Sep 1 2008, 14:49) А смысл?... Sep 1 2008, 09:53 Rst7 ЦитатаТо есть был 127, стал 128 - меняем старший б... Sep 1 2008, 10:02 Rst7 Цитатаavr-gcc делает лишнее
Кстати, не пора ли лю... Sep 1 2008, 11:02 ReAl Цитата(Rst7 @ Sep 1 2008, 14:02) Кстати, ... Sep 1 2008, 11:20 Rst7 Цитата77% загрузка процессора.
Необходимо учесть ... Sep 1 2008, 11:07 =GM= Цитата(Rst7 @ Sep 1 2008, 10:07) Кстати, ... Sep 1 2008, 11:21 Rst7 ЦитатаКодвижн такие времена даёт для интиджер.
Ды... Sep 1 2008, 11:24 =GM= Цитата(Rst7 @ Sep 1 2008, 10:24) Дык поль... Sep 1 2008, 11:40 PhX Цитата(Rst7 @ Sep 1 2008, 16:24) Дык поль... Sep 1 2008, 11:50  defunct Цитата(PhX @ Sep 1 2008, 14:50) где можно... Sep 1 2008, 11:54  =GM= Цитата(PhX @ Sep 1 2008, 10:50) Асм это х... Sep 1 2008, 12:56   Сергей Борщ Цитата(=GM= @ Sep 1 2008, 15:56) Ещё раз ... Sep 1 2008, 13:11   defunct Цитата(=GM= @ Sep 1 2008, 15:56) То-то вс... Sep 1 2008, 13:12    =GM= Цитата(defunct @ Sep 1 2008, 12:12) Опред... Sep 1 2008, 15:25     defunct Цитата(=GM= @ Sep 1 2008, 18:25) Ну, прек... Sep 1 2008, 15:47      =GM= Цитата(defunct @ Sep 1 2008, 14:47) ОК Ч... Sep 1 2008, 16:14       zltigo Цитата(=GM= @ Sep 1 2008, 18:14) ...как б... Sep 1 2008, 16:25       defunct Цитата(=GM= @ Sep 1 2008, 19:14) Ну, а ес... Sep 1 2008, 16:38        =GM= Краткие выводы из всех наших долгих разговоров.
1... Sep 1 2008, 20:32         zltigo Цитата(=GM= @ Sep 1 2008, 22:32) 3) Из по... Sep 1 2008, 21:50  sKWO Цитата(PhX @ Sep 1 2008, 14:50) Если не ж... Sep 1 2008, 15:19 Rst7 ЦитатаК примеру, у вас прерывание выполняется за 2... Sep 1 2008, 11:45 =GM= Цитата(Rst7 @ Sep 1 2008, 10:45) Значения... Sep 1 2008, 12:05 Rst7 ЦитатаЭто должен делать компилятор, причём во всех... Sep 1 2008, 12:18 SasaVitebsk Я бы ещё отметил, в дополнение к сказанному, что е... Sep 2 2008, 09:58 =GM= Цитата(SasaVitebsk @ Sep 2 2008, 08:58) В... Sep 2 2008, 12:17 SasaVitebsk В массовых изделиях, совершенно обосновано максима... Sep 2 2008, 20:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|