-
- В иаре 4-м есть ключевое слов __raw, т.е. объявляешь прерывание на си без сохранения контекста. Затем вставляешь макрос на асме, сохраняющий один регистр(asm(" push r16")), дальше творишь ввод-вывод, C++(141 знак., 14.06.2007 12:40, )
- ... а также системную библиотеку подправить или своё "ключевое слово" состряпать... bus16(78 знак., 14.06.2007 13:10, )
- Можно задать вопрос и по другому. Как в вызове прерывания разбить сохранение регистров на несколько частей? - Т.Достоевский(09.06.2007 19:10, )
- Только написанием своей процедуры обработчика на асме. Вопрос встречный, а зачем это нужно? - rezident(09.06.2007 19:15, )
- Превед! Яж обяснил что пока он енти регистры(пока савсем не нужные посахраняет может уже и гасить индикатор надо а не зажигать. Т.Достоевский(246 знак., 09.06.2007 19:23, )
- Не понял, у вас МК на частоте 32786Гц работает? Иначе как можно за прерывание не успеть сохранить/восстановить контент из одних регистров? Или поясните попроще ваши аллегории. - rezident(09.06.2007 19:37, )
- Естче раз. Т.Достоевский(121 знак., 09.06.2007 19:42, )
- И в чем проблема-то? В 4мс прерывании не успевает обработать? - rezident(09.06.2007 19:47, )
- А вы знаете что значит tco_compa? Т.Достоевский(762 знак., 09.06.2007 20:03, )
- Я не знаток AVR, но разве в компиляторе нет функций типа __enable_interrupt, что возникает такая потребность разрешать прерывание записью непосредственно в регистр? rezident(521 знак., 09.06.2007 20:19, )
- Превед! Т.Достоевский(334 знак., 09.06.2007 20:23, )
- Много прерываний или источников прерывания? __enable_interrupt это макрос в конечном итоге. Никто не мешает вам определить его самостоятельно. Если действительно так важна мифическая "переносимость программы на Си". - rezident(09.06.2007 20:31, )
- Я в С абсолютный новичок. Макрос и линкер слишком сложно для начала. От темы отвлеклись. Джиттер то имеет место быть! Надо удалять Т.Достоевский(131 знак., 09.06.2007 20:41, )
- Ну и что, что имеется джиттер? Вопрос в том, насколько неприемлима его величина? Вы не ответили: у вас много прерываний или источников прерываний? Пока речь только про прерывания от таймера и АЦП была. - rezident(09.06.2007 20:41, )
- Превед! Яб вам описал бы еслиб сам знал что наваял. Т.Достоевский(249 знак., 09.06.2007 20:47, )
- Это можно сделать и на Си, если досконально изучить особенности компилятора и не гнаться за мифической "переносимостью" кода. - rezident(09.06.2007 20:57, )
- Вот вот Подскажите как! Оччень нужно. Т.Достоевский(380 знак., 09.06.2007 21:06, )
- Видно, идеи грандиозные, если нужно вводить специальную опцию для компилятора - абсолютное резервирование регистров. Кстати, напишите на IAR, сошлитесь на свой номер лицензии, поделитесь проблемой... Vladimir Ljaschko(28 знак., 14.06.2007 12:49, )
- Ну раз принципиально, то разделяйте программу на драйверы и функции, использующие эти драйверы. Драйверы придется адаптировать к железу в каждом случае, а функции могут быть и переносимыми. - rezident(10.06.2007 03:00, )
- Впрочем, вижу вы к этой мысли уже и сами пришли. - rezident(10.06.2007 03:01, , ссылка)
- Превед! У меня ситуация как раз наоборот. Железо одно а програм и драйверов много - Т.Достоевский(10.06.2007 21:03, )
- Впрочем, вижу вы к этой мысли уже и сами пришли. - rezident(10.06.2007 03:01, , ссылка)
- Вот вот Подскажите как! Оччень нужно. Т.Достоевский(380 знак., 09.06.2007 21:06, )
- Это можно сделать и на Си, если досконально изучить особенности компилятора и не гнаться за мифической "переносимостью" кода. - rezident(09.06.2007 20:57, )
- Превед! Яб вам описал бы еслиб сам знал что наваял. Т.Достоевский(249 знак., 09.06.2007 20:47, )
- Ну и что, что имеется джиттер? Вопрос в том, насколько неприемлима его величина? Вы не ответили: у вас много прерываний или источников прерываний? Пока речь только про прерывания от таймера и АЦП была. - rezident(09.06.2007 20:41, )
- Я в С абсолютный новичок. Макрос и линкер слишком сложно для начала. От темы отвлеклись. Джиттер то имеет место быть! Надо удалять Т.Достоевский(131 знак., 09.06.2007 20:41, )
- Много прерываний или источников прерывания? __enable_interrupt это макрос в конечном итоге. Никто не мешает вам определить его самостоятельно. Если действительно так важна мифическая "переносимость программы на Си". - rezident(09.06.2007 20:31, )
- Превед! Т.Достоевский(334 знак., 09.06.2007 20:23, )
- Я не знаток AVR, но разве в компиляторе нет функций типа __enable_interrupt, что возникает такая потребность разрешать прерывание записью непосредственно в регистр? rezident(521 знак., 09.06.2007 20:19, )
- А вы знаете что значит tco_compa? Т.Достоевский(762 знак., 09.06.2007 20:03, )
- И в чем проблема-то? В 4мс прерывании не успевает обработать? - rezident(09.06.2007 19:47, )
- Естче раз. Т.Достоевский(121 знак., 09.06.2007 19:42, )
- Не понял, у вас МК на частоте 32786Гц работает? Иначе как можно за прерывание не успеть сохранить/восстановить контент из одних регистров? Или поясните попроще ваши аллегории. - rezident(09.06.2007 19:37, )
- Превед! Яж обяснил что пока он енти регистры(пока савсем не нужные посахраняет может уже и гасить индикатор надо а не зажигать. Т.Достоевский(246 знак., 09.06.2007 19:23, )
- Только написанием своей процедуры обработчика на асме. Вопрос встречный, а зачем это нужно? - rezident(09.06.2007 19:15, )
- В иаре 4-м есть ключевое слов __raw, т.е. объявляешь прерывание на си без сохранения контекста. Затем вставляешь макрос на асме, сохраняющий один регистр(asm(" push r16")), дальше творишь ввод-вывод, C++(141 знак., 14.06.2007 12:40, )