|
__raw прерывания |
|
|
|
 |
Ответов
|
Jun 12 2007, 14:57
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Т.Достоевский @ Jun 12 2007, 16:58)  Вот тут то и загвоздка! При малых значениях tc_compa заметен "муар" на индикаторе. Занесите в tc_compa значение на "лишние" 5-10-20 (сколько там вам не хватает тактов) меньше. Прерывание будет возникать на столько же тактов раньше. "Муар" изчез? Нет. Вывод - виновата не _константная_ задержка, которая возникает из-за сохранения контекста, а джиттер, который возникает из-за того, что в момент возникновения этого прерывания обрабатывалось другое прерывание или какой-либо другой кусок кода, во время которого прерывания запрещены. Копайте там. Или используйте вывод compa, который формируется аппаратно и не зависит от запрета/разрешения прерываний. Не верите - сделайте как написал singlskv и убедитесь. Цитата(Т.Достоевский @ Jun 12 2007, 16:58)  Ещё раз повторю что, программа есть на асме. И прерывание там значительно длиннее по времени чем на С (На С я и так уже выкинул всё что мог). А я вам повторю, что _константная_ задержка в этом месте не виновата. Цитата(Т.Достоевский @ Jun 12 2007, 16:58)  Насчёт иара. Если там нет вещей которые применяются в 60% случаев, то возникает вопрес о целесообразности применения подобных сред. Поэтому НЕВЕРЮ. Вопрос о целесообразности каждый решает для себя сам. Вы можете решить его в пользу асма. Раз там нет таких вещей, значит ваша цифра 60% завышена как минимум на два порядка. Делайте выводы.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 12 2007, 16:05
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Сергей Борщ @ Jun 12 2007, 18:57)  Не верите - сделайте как написал singlskv и убедитесь. Если честно, я вобще не вникал в суть алгоритма/проблемы автора  На сахаре автар попросил не вникать А вобще как-то это все странно, 25 лишних тактов и уже мерцание... Афтар, приведите минимальный код в котором будет эта проблема
|
|
|
|
Сообщений в этой теме
Т.Достоевский __raw прерывания Jun 11 2007, 22:07 rezident Вам в пустыне уже все разжевали, теперь еще и тут ... Jun 11 2007, 22:50 Т.Достоевский Это СОВСЕМ не то что мне нужно, тк он НЕ СОХРАНИЛ ... Jun 11 2007, 23:10 rezident Опс! Ну да. Вы правы. Я забыл что это прерыван... Jun 11 2007, 23:32 Т.Достоевский Но тогда придётся сохранять юзанные регистры ручка... Jun 11 2007, 23:39 Сергей Борщ Цитата(Т.Достоевский @ Jun 12 2007, 02:39... Jun 12 2007, 06:34 IgorKossak Цитата(Т.Достоевский @ Jun 12 2007, 02:39... Jun 12 2007, 07:37  Сергей Борщ Цитата(IgorKossak @ Jun 12 2007, 10:37) Э... Jun 12 2007, 10:30 singlskv Цитата(Т.Достоевский @ Jun 12 2007, 03:39... Jun 12 2007, 13:59 Т.Достоевский "Ваша ошибка в самом алгоритме, вам на нее =A... Jun 12 2007, 11:29 Сергей Борщ Цитата(Т.Достоевский @ Jun 12 2007, 14:29... Jun 12 2007, 12:46   Т.Достоевский Цитата(singlskv @ Jun 12 2007, 20:05) Есл... Jun 12 2007, 16:14 Т.Достоевский Вы совеошенно правы прерывание мешает другое (адс)... Jun 12 2007, 15:56 singlskv Цитата(Т.Достоевский @ Jun 12 2007, 19:56... Jun 12 2007, 16:15  Т.Достоевский Цитата(singlskv @ Jun 12 2007, 20:15) jmp... Jun 12 2007, 16:19   singlskv по Вашей ссылке прерывания ADC не увидел, дальше н... Jun 12 2007, 16:36 Т.Достоевский В том то и дело, в меге нету абсолютного jmp!.... Jun 12 2007, 16:48 slog Ты и тут уже :-)
__indirect_jump_to((unsigned lon... Jun 12 2007, 17:11 Т.Достоевский Цитата(slog @ Jun 12 2007, 21:11) Ты и ту... Jun 12 2007, 17:15  singlskv Цитата(Т.Достоевский @ Jun 12 2007, 21:15... Jun 12 2007, 17:21   rezident Цитата(singlskv @ Jun 12 2007, 23:21) не.... Jun 12 2007, 19:57 Т.Достоевский Цитата(slog @ Jun 12 2007, 21:11) __indir... Jun 12 2007, 20:14  rezident Цитата(Т.Достоевский @ Jun 13 2007, 02:14... Jun 12 2007, 20:37 Т.Достоевский __indirect_jump_to((unsigned long)&Имя_функции... Jun 12 2007, 20:49 Сергей Борщ Цитата(Т.Достоевский @ Jun 12 2007, 23:49... Jun 13 2007, 07:07  Т.Достоевский Цитата(Сергей Борщ @ Jun 13 2007, 11:07) ... Jun 13 2007, 09:50   IgorKossak Цитата(Т.Достоевский @ Jun 13 2007, 12:50... Jun 13 2007, 14:19    Т.Достоевский Цитата(IgorKossak @ Jun 13 2007, 18:19) Т... Jun 13 2007, 17:02     IgorKossak Цитата(Т.Достоевский @ Jun 13 2007, 20:02... Jun 13 2007, 18:21      Т.Достоевский Цитата(IgorKossak @ Jun 13 2007, 22:21) Н... Jun 13 2007, 19:24 slog Незнаю
#pragma vector = TIMER0_OVF0_vect
__interr... Jun 13 2007, 04:03 Rst7 Делаю так обычно, ужос конечно, но что поделать:
... Jun 13 2007, 08:12 SasaVitebsk Извините, что я вмешиваюсь в столь лихо закрученну... Jun 13 2007, 20:20 Т.Достоевский Цитата(SasaVitebsk @ Jun 14 2007, 00:20) ... Jun 13 2007, 21:04 Rst7 Про недокументированные модификаторы для AVR поищи... Jun 14 2007, 05:12 SasaVitebsk В этом смысле платформы для микропроцессоров даже ... Jun 14 2007, 17:44 Dog Pawlowa Цитата(SasaVitebsk @ Jun 14 2007, 20:44) ... Jun 14 2007, 18:37 Т.Достоевский Цитата(SasaVitebsk @ Jun 14 2007, 21:44) ... Jun 14 2007, 18:42 IgorKossak Вот и славненько!
На этой мажорной ноте предла... Jun 14 2007, 21:04 Т.Достоевский Цитата(IgorKossak @ Jun 15 2007, 01:04) В... Jun 14 2007, 21:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|