|
ADuC702x и обработчик прерывания FIQ |
|
|
|
 |
Ответов
|
Apr 27 2015, 07:18
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
А как вы вернетесь то в точку где было прерывание, если вы из него улетите в вашу функцию... вам предется в функцию передавать точку возврата, делать там непонятный переход... а если опять будет прерывание?
Когда вы попадает в FIQ прерывание, у вас снимается флажок реакции на прерывания, по выходу из FIQ он ставиться снова. Никто вам не мешает, при переходе в вашу функцию из FIQ опять поставить этот флажок.
тогда если ваша функция отработает до конца, вы выйдите из FIQ в точку остановки программы. А если же у вас пока вы будите в функции возникнет прерывание, вы политите отработаете его и вернетесь в свою функцию, а когда ее закончите выйдите из FIQ в точку остановки программы.
Одна сложность вам надо сделать так чтобы повторно вы опять в FIQ не полетели, за этим просто надо следить.
|
|
|
|
|
Apr 27 2015, 09:36
|
Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 25-10-09
Из: Екатеринбург
Пользователь №: 53 194

|
Цитата(Golikov A. @ Apr 27 2015, 11:18)  А как вы вернетесь то в точку где было прерывание, если вы из него улетите в вашу функцию... вам предется в функцию передавать точку возврата, делать там непонятный переход... а если опять будет прерывание?
Когда вы попадает в FIQ прерывание, у вас снимается флажок реакции на прерывания, по выходу из FIQ он ставиться снова. Никто вам не мешает, при переходе в вашу функцию из FIQ опять поставить этот флажок.
тогда если ваша функция отработает до конца, вы выйдите из FIQ в точку остановки программы. А если же у вас пока вы будите в функции возникнет прерывание, вы политите отработаете его и вернетесь в свою функцию, а когда ее закончите выйдите из FIQ в точку остановки программы.
Одна сложность вам надо сделать так чтобы повторно вы опять в FIQ не полетели, за этим просто надо следить. У меня алгоритм работы устройства довольно простой - после возникновения прерывания FIQ максимально быстро перейти к функции регистрации данных с АЦП (записать данные в массив), затем записанный массив данных перезаписать в FLASH память и выключить прибор. Но в процессе регистрации возможна ситуации срабатывания монитора напряжения питания (из-за разряда батареи). В этом случае мне необходимо остановить процесс регистрации и завершит программу с установленным флагом в FLASH 'сбой напряжения питания'. В данный момент функцию регистрации я вызываю из FIQ, поэтому если происходит сбой по напряжению питания я теряю зарегистрированные данные и флаг с информацией о сбое напряжения питания тоже не устанавливается.
|
|
|
|
Сообщений в этой теме
VadimNic_nt ADuC702x и обработчик прерывания FIQ Apr 26 2015, 10:07 mantech Цитата(VadimNic_nt @ Apr 26 2015, 13:07) ... Apr 26 2015, 10:49 VadimNic_nt Цитата(mantech @ Apr 26 2015, 13:49) А чт... Apr 27 2015, 07:05  jcxz Цитата(VadimNic_nt @ Apr 27 2015, 13:05) ... Apr 27 2015, 09:14 mantech Цитата(Golikov A. @ Apr 27 2015, 10:18) О... Apr 27 2015, 08:34   VadimNic_nt Цитата(jcxz @ Apr 27 2015, 14:31) Зачем в... Apr 27 2015, 10:37    jcxz Цитата(VadimNic_nt @ Apr 27 2015, 16:37) ... Apr 27 2015, 14:14     mantech Цитата(jcxz @ Apr 27 2015, 17:14) Заменит... Apr 28 2015, 06:45      jcxz Цитата(mantech @ Apr 28 2015, 12:45) Дак ... Apr 28 2015, 07:05  mantech Цитата(VadimNic_nt @ Apr 27 2015, 12:36) ... Apr 27 2015, 12:02   VadimNic_nt Цитата(mantech @ Apr 27 2015, 16:02) Т.е.... Apr 27 2015, 17:00    jcxz Цитата(VadimNic_nt @ Apr 27 2015, 23:00) ... Apr 28 2015, 04:51     VadimNic_nt Цитата(jcxz @ Apr 28 2015, 07:51) Как уже... Apr 28 2015, 08:48      jcxz Цитата(VadimNic_nt @ Apr 28 2015, 14:48) ... Apr 29 2015, 03:59 Golikov A. мне помниться что для FIQ был свой флаг, нет? То е... Apr 27 2015, 08:46 Golikov A. А если в фик поставить флаг новые данные, а данные... Apr 27 2015, 11:27 VadimNic_nt Цитата(Golikov A. @ Apr 27 2015, 15:27) А... Apr 27 2015, 11:51 Golikov A. Там может быть стоит переход с PLL клока на внутре... Apr 27 2015, 13:50 Golikov A. ну так кто вам мешает руками этот делитель перебро... Apr 27 2015, 18:00 Golikov A. Что-то мне говорит что ADuC - это фигня со встроен... Apr 28 2015, 05:07 Golikov A. ну учитывая габариты не думаю что там много место ... Apr 28 2015, 07:53 mantech Цитата(Golikov A. @ Apr 28 2015, 10:53) F... Apr 28 2015, 09:41  VadimNic_nt Цитата(mantech @ Apr 28 2015, 13:41) Я та... Apr 28 2015, 10:05 Golikov A. ЦитатаЯ так понимаю, что эта FRAM - разновидность ... Apr 28 2015, 10:57 mantech Цитата(Golikov A. @ Apr 28 2015, 13:57) д... Apr 28 2015, 16:36 Golikov A. FM23MLD16 (8 Мбит)
10^14 циклов перезаписи, малюсе... Apr 28 2015, 17:15 Golikov A. ЦитатаА "чем больше тем лучше" - это рад... Apr 29 2015, 06:02 jcxz Цитата(Golikov A. @ Apr 29 2015, 12:02) к... Apr 29 2015, 07:40 Golikov A. Да верно, это я чего-то напутал. MSP430F149 прост... Apr 29 2015, 16:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|