|
Приоритет прерываний, и прерывание прерываний |
|
|
|
 |
Ответов
|
Aug 30 2008, 10:14
|

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

|
Цитата оэтому делать ее в этом месте вполне безопасно. Не, я про то, что если возникнет прерывание между чтением TCNT1 и установкой - будет уж очень большая погрешность. Тогда уж лучше так: Код __interrupt void T1_proc(void) { unsigned char t; __enable_interrupt(); t=PORTC; __disable_interrupt(); TCNT1+=_ADJUST_T1_+0x10000 - 62500 / Frq; __enable_interrupt(); t<<=1; if (PORTC&0x08) t=1; PORTC=t; __disable_interrupt(); TCNT1 = 0x10000 - 62500 / Frq; } _ADJUST_T1_ - это поправочная константа на время между чтением TCNT1 и записью. Ее надо выбрать по результирующему коду обработчика. А чтобы не бояться повторного входа, установить заранее OCR1 на число меньшее, чем заносится в TCNT1 (или, например, неплохо будет занести туда время, которое допустимо между вызовами прерывания). По флагу OCF1 можно ориентироваться, что произошло гуано в генерации частоты. На самом деле это хорошо работает, если прескаллер равен 1. Кстати, я надеюсь у автора Frq - константа? Если нет, то расчет значения для занесения в таймер надо убирать из прерывания.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 30 2008, 21:08
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(defunct @ Aug 31 2008, 00:59)  выбросить все манипуляции с TCNT. Работать нужно только с OCR, и пользовать CTC режим. А причём тут это? Какое отношение Ваши реплики имеют к вопросу темы? НАПОМИНАЮ, вопрос темы звучал так: Цитата(PhX @ Aug 28 2008, 20:53)  как сделать так, чтобы это прерывание <INT0>{прим.Боинг749} имело наивысший приоритет и прерывало обработчики остальных прерываний? И КОНКРЕТНО на этот вопрос я ответил чуть выше
Сообщение отредактировал Боинг749 - Aug 30 2008, 21:13
|
|
|
|
Сообщений в этой теме
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    Боинг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 Rst7 ЦитатаИ как вы себе представляете правку старшего ... Sep 1 2008, 09:49 =GM= Цитата(Rst7 @ Sep 1 2008, 08:35) Вполне п... Sep 1 2008, 09:52 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
|
|
|