реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Closed TopicStart new topic
> __raw прерывания
fmdost
сообщение Jun 13 2007, 09:50
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(Сергей Борщ @ Jun 13 2007, 11:07) *
Подозреваю, что не включили заголовочный файл, в котором находится объявление функции __indirect_jump_to(). Изучайте, чем вызов функции отличается от ее объявления и чем объявление функции отличается от ее определения.

Оказалось проще, надо комп перегрузить.

Цитата(Rst7 @ Jun 13 2007, 12:12) *
Делаю так обычно, ужос конечно, но что поделать:

Супер!!! То что надо!!!!!!!! Огромное СПАСИБО!!!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 13 2007, 14:19
Сообщение #32


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Т.Достоевский @ Jun 13 2007, 12:50) *
Супер!!! То что надо!!!!!!!! Огромное СПАСИБО!!!

Так у Вас получилось что хотели в итоге или просто понравилось?
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 13 2007, 17:02
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(IgorKossak @ Jun 13 2007, 18:19) *
Так у Вас получилось что хотели в итоге или просто понравилось?

И понравилось и получилось. Особенно то что я не один работаю с реалтайм. Использовал раньше ijmp z, прямо на "фиктивный" вектор, теперь можно средствами "чистого С". Хотя странно почему такого в иаре нет . Подождём что иар ответит.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 13 2007, 18:21
Сообщение #34


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Т.Достоевский @ Jun 13 2007, 20:02) *
...Хотя странно почему такого в иаре нет . Подождём что иар ответит.

Не понятно, разве Rst7 не по ИАРу ответил или не на "чистом" С?
И как Вы собираетесь от ИАРа ответ получить? По моему они отвечают только зарегистрированным пользователям и на запросы, адресованные именно к ним по почте (здесь они врядли идеи черпают cool.gif ).
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 13 2007, 19:24
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(IgorKossak @ Jun 13 2007, 22:21) *
Не понятно, разве Rst7 не по ИАРу ответил или не на "чистом" С?
И как Вы собираетесь от ИАРа ответ получить? По моему они отвечают только зарегистрированным пользователям и на запросы, адресованные именно к ним по почте (здесь они врядли идеи черпают cool.gif ).

Я на С новичок, но мне кажется что ((void (*) (void deceit_int)(); это "чистый С" хотя и не катит в CAVR

А С иаром wink.gif "голь на выдумки хитра" Чай то-же на географическом говорят beer.gif . Ответят.

Сообщение отредактировал Т.Достоевский - Jun 13 2007, 19:35
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 13 2007, 20:20
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Извините, что я вмешиваюсь в столь лихо закрученную тему. Но если у Вас дрожание происходит из-за другого прерывания (по ADC), то я Вам предложу несколько, на мой взгляд более простых решений. И именно в рамках IAR. Попробуйте их сделать.

1) Самое простое и возможно эффективное. Во всяком случае Вам не придётся ломать программу.
Первой командой прерывания ADC введите __enable_interrupt();

2) По скольку динамическая индикация - вещь явно периодическая, а АЦП Вы явно вызываете по таймеру или привязываете его ко времени другим способом, то выкиньте вообще прерывание по ADC. Работайте следующим образом.
В начале прерывания динамической индикации - считываете предыдущее значение АЦП. В конце меняете канал и запускаете следующее измерение.
Если время опроса АЦП у вас меньше времени регенерации - то вызывайте регенерацию по N-ному прерыванию от АЦП.


Можно и ещё предложений много сделать. Главное, чтобы моя мысль до Вас дошла. За всю жизнь мне не разу не приходилось делать прерывание от АЦП. Сложно даже представить себе ситуацию когда это нужно. Как и прерывание от SPI передачи. Малоэффективно. Потери на обработку прерывания велики по сравнению с ожиданием результата. Рекомендую применять синхронное чтение, когда результат - гарантировано будет получен.


Извиняюсь, если я не правильно оценил задачу и ответил не на Ваши вопросы. smile.gif
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 13 2007, 21:04
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(SasaVitebsk @ Jun 14 2007, 00:20) *
Извините, что я вмешиваюсь в столь лихо закрученную тему. Но если у Вас дрожание происходит из-за другого прерывания (по ADC), то я Вам предложу несколько, на мой взгляд более простых решений. И именно в рамках IAR. Попробуйте их сделать.

Всё что Вы говорите совершенно верно. Для меня "дрожание" индикатора это частный случай изучения тонких моментов языка С и конкретных сред разработки. К сожалению тех. документация на среды разработки оставляет желать много лудшего. Зачастую изучить систему команд нового микроконтроллера бывает значительно проще, чем написать пустую функцию main() во вновь изучаемой среде. По этому опыт людей столкнувшихся с подобными проблемами трудно переоценить. А отсутствие упоминания о действуещем модификаторе __raw наводит на мысль о наличии других недокументированных модификаторов, дающих возможность получить, желаемый в данном случае результат.
Со своей точки зрения могу сказать, отсутствие таких возможностей в IAR сильно снижает его привлекательность для малых микроконтроллеров, таких как обсуждаемый нами mega88.
Со своей стороны приложу все усилия для того, что бы получить разяснения по недосказанным, и поверхностно описанным моментам в описании IAR С компилятора. maniac.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 14 2007, 05:12
Сообщение #38


Йа моск ;)
******

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



Про недокументированные модификаторы для AVR поищите на форуме слова __x, __z, __x_z, __z_x - тоже понравится wink.gif

добавлено позже: Ах пардон, оказывается, они уже упоминаются в доке на 4.30... Пойду погляжу в exe-файл, может еще чего интересного появилось wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 14 2007, 17:44
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



В этом смысле платформы для микропроцессоров даже лучше чем аналогичные для PC. Некоторых вещей совершенно не упоминается, к примеру, в DELFI, хотя это совершенно не мешает их использовать. Если конечно знаешь что они есть! smile.gif Но в этом как раз и вопрос!

Поэтому как бы не хвалили родную документацию, хорошая книга на русском языке от знающего автора и умеющего донести свои знания, - безусловно лучше. Только вот где эти авторы в области МК? К сожалению их практически нет и выбирать не из чего.

Приведу пример для DELFI. Использую процедуру
BitBlt(Image1.Canvas.Handle,0,0,Image1.Width,Image1.Height,BackGnd2.Canvas.Handl
e,0,0,SRCCOPY);
Появилась ещё в DELFI5. Подсмотрел у Стива Тейксейры и Ксавье Паченко http://www.libex.ru/detail/book66580.html. Великолепная книга, ставшая для меня настольной с совершенно отличным изложением.
В хелпе DELFI 7 упоминания о ф-ции не нашёл. Но прекрасно работает. И такие примеры - на каждом углу в области программирования на PC.

Думаю лет ч/з 20 появится хорошие книги по IAR, правда будут ли они кому нужны???


При том при всём - не отчаивайтесь. Я например недавно пытался переписать одну маленькую процедуру, которая вызывается огромное число раз, в IAR C на ассемблер. При этом следует признать, что на ассемблере я писал длительное время. Так вот при том что конкретные единичные операции удаётся написать эффективней, компилятор красивей работает с переменными. И выигрыш в результате получился плёвый, по сравнению с более грамотной Си программой. Так что я оставил Си текст, просто оптимизировал его. Вот и получается что знание ассемблера помогает красивее написать Си процедуру. Потому, что ты заранее предполагаешь как компилятор будет поступать. А следовательно - чем лучше ты знаешь компилятор - тем эффективней будут программы. Надо отходить от асемблера.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2007, 18:37
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SasaVitebsk @ Jun 14 2007, 20:44) *
... Вот и получается что знание ассемблера помогает красивее написать Си процедуру. Потому, что ты заранее предполагаешь как компилятор будет поступать. А следовательно - чем лучше ты знаешь компилятор - тем эффективней будут программы....

Тут не помешало бы вспомнить ув. Bill'a. Он, хотя и покинул эмбеддерское интернетовское сообщество сейчас, сумел раньше посеять хорошие семена, которые дали достойные всходы smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 14 2007, 18:42
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(SasaVitebsk @ Jun 14 2007, 21:44) *
Вот и получается что знание ассемблера помогает красивее написать Си процедуру. Потому, что ты заранее предполагаешь как компилятор будет поступать. А следовательно - чем лучше ты знаешь компилятор - тем эффективней будут программы. Надо отходить от асемблера.

От себя добавлю "надо отходить от асемблера" особенно в свете появления двух, и 8-и(восьми) ядерных микроконтроллеров.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 14 2007, 21:04
Сообщение #42


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Вот и славненько!
На этой мажорной ноте предлагаю Т.Достоевскому, как автору, закрыть тему. Если, конечно, добавить по теме больше нечего или спросить.
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 14 2007, 21:39
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(IgorKossak @ Jun 15 2007, 01:04) *
Вот и славненько!
На этой мажорной ноте предлагаю Т.Достоевскому, как автору, закрыть тему. Если, конечно, добавить по теме больше нечего или спросить.

Есть! А как её закрыть?
Закрывайте!
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 13:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01447 секунд с 7
ELECTRONIX ©2004-2016