|
SAM4S, Ничего не выходит |
|
|
|
 |
Ответов
|
Aug 5 2015, 17:08
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Цитата И ещё один вопрос: при этом у процессора вообще останется время на обсчёт фильтра? Сколько угодно. Фильтр расчитывается лишь в том случае, если переменная flag == 1. Она устанавливается в 1 в функции обработки прерывания от АЦП, и сбрасывается в 0, как только завершился код фильтра для данного отсчёта поступившего с АЦП. После этого фильтр не считается, а моргают лампочки.... Цитата И как это может работать? Наводящий вопрос: сколько времени занимает выполнение вот этого участка кода? Не всё ли равно сколько времени занимает этот кусок кода? Его выполнение стопорнётся, как только придёт прерывание с переферии (ЦАП/АЦП). Впрочем я в ф-ции int main(void) я коментил лампочки и писал строчку типа Код dout = din; без всякого фильтра. Всё равно никакого эффекта. Как будто компилятор хочет всё выполнять в функциях прерывания, а на основную ему наср наплевать  При том самое интересное, что в основной ф-ции переменную flag процессор обнуляет, а вот фильтр банит...
Сообщение отредактировал Грендайзер - Aug 5 2015, 17:13
|
|
|
|
|
Aug 5 2015, 17:32
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Грендайзер @ Aug 5 2015, 20:08)  Сколько угодно. Фильтр расчитывается лишь в том случае, если переменная flag == 1. Она устанавливается в 1 в функции обработки прерывания от АЦП, и сбрасывается в 0, как только завершился код фильтра для данного отсчёта поступившего с АЦП. После этого фильтр не считается, а моргают лампочки.... Представьте, что одна итерация "мигания" длится 1 секунду. Это значит, что фильтр может обновляться не чаще, чем 1 раз в секунду. Цитата(Грендайзер @ Aug 5 2015, 20:08)  Впрочем я в ф-ции int main(void) я коментил лампочки и писал строчку типа Код dout = din; без всякого фильтра. Всё равно никакого эффекта. Как будто компилятор хочет всё выполнять в функциях прерывания, а на основную ему наср наплевать  При том самое интересное, что в основной ф-ции переменную flag процессор обнуляет, а вот фильтр банит... Довольно бессмысленно вносить случайные изменения в неработающую программу в надежде, что она заработает. И выкиньте из головы мысль о том, что компилятор виноват. Это ошибки в вашей программе. Да, для оптимизации компилятору разрешено многое такое, что новичка может поставить в тупик, но есть чёткие правила. Если хотите понимать, что он нагенерил, смотрите в справочник инструкций процессора. Начинайте с низких уровней оптимизации, потому что на высших уровнях код корёжится до неузнаваемости, без поллитры не разберёшься, но при этом правильные программы не ломаются. Ну и вообще сомневаюсь, что у вас всё упёрлось в оптимизацию. Выглядит так, будто вы просто не понимаете, как работает программа, и надеетесь включением оптимизации волшебным образом решить все проблемы. Можно было бы попробовать поразбираться, но вы привели неполный код, а полный, наверное, слишком большой, то есть разбираться будет лень. Ну и я не знаю, как там в SAMах всё работает, может быть, хитрые нюансы есть.
|
|
|
|
Сообщений в этой теме
Грендайзер SAM4S Oct 14 2014, 18:01 Genadi Zawidowski Вот посмотрите... Разберетесь?
CODEvoid
arm_hardw... Oct 14 2014, 18:26 Leopoldius Все зависит от того чем Вы предпочитаете пользоват... Oct 14 2014, 18:29 Golikov A. А еще надо не путать даташит и рефернс мануал. В о... Oct 14 2014, 19:04 Leopoldius О да, особенно СТМ этим страдает. У АТМЕЛ в этом п... Oct 14 2014, 19:09 Грендайзер ЦитатаВот посмотрите... Разберетесь?
Честно говоря... Oct 14 2014, 19:15 Leopoldius Цитата(Грендайзер @ Oct 14 2014, 22:15) А... Oct 14 2014, 19:23 Грендайзер ЦитатаЕсли есть опыт работы с другими МК, то я бы ... Oct 14 2014, 19:52 Golikov A. В АРМах не принято порты буквами называть. И на са... Oct 15 2014, 05:15 Грендайзер Нашёл в студии заголовочник "sam4sd32c.h... Oct 15 2014, 06:49 DmitryM Цитата(Грендайзер @ Oct 15 2014, 10:01) Н... Oct 15 2014, 06:52 KnightIgor Цитата(Грендайзер @ Oct 15 2014, 08:49) Н... Oct 15 2014, 09:46 Golikov A. обычно хорошим тоном бывает давать в заголовочном ... Oct 15 2014, 08:14 Грендайзер Фух, запустил внутренний "медленный" ква... Oct 15 2014, 11:55 KnightIgor Цитата(Грендайзер @ Oct 15 2014, 13:55) K... Oct 15 2014, 13:03 Leopoldius По поводу студии и почему не работает PORTB в ваше... Oct 15 2014, 12:17 Golikov A. а я бы сказал что так делать не надо, по описанной... Oct 15 2014, 12:50 Leopoldius Цитата(Golikov A. @ Oct 15 2014, 15:50) а... Oct 15 2014, 13:00 Грендайзер ЦитатаЭто самый короткий, прямой путь без сюрпризо... Oct 15 2014, 13:39 Golikov A. Правда как всегда по середине.
Я всегда за то что... Oct 15 2014, 14:17 Грендайзер Здравствуйте! Продолжаю мучить ATSAM4S32C. Дош... Jul 29 2015, 09:54 Obam Формально да (но попробовать не запрещено), ЦАП бы... Jul 29 2015, 10:13 Грендайзер Всё ясно, спасибо. Хотя всёравно как то печально Jul 29 2015, 10:17 Грендайзер Всем доброго времени суток. Опять столкнулся с про... Aug 5 2015, 10:10 Obam Не грех посмотреть в сгенерённый код: куда dout та... Aug 5 2015, 11:04 Грендайзер ЦитатаНе грех посмотреть в сгенерённый код: куда d... Aug 5 2015, 11:56 scifi У вас шнурки развязались не код, а полный бардак. ... Aug 5 2015, 12:13 Грендайзер прошу прощения за ошибки допущенные при копировани... Aug 5 2015, 12:40 DmitryM Цитата(Грендайзер @ Aug 5 2015, 16:40) пр... Aug 5 2015, 13:43 Golikov A. int din = 0;
int dout = 0;
вот это под volatile
... Aug 5 2015, 12:55 Грендайзер Цитатакакая там у вас битность ЦАП? не переполнитс... Aug 5 2015, 13:14 scifi Цитата(Грендайзер @ Aug 5 2015, 16:14) И ... Aug 5 2015, 13:30 RabidRabbit А прерывания от АЦП с какой частотой следуют?
Не т... Aug 5 2015, 13:14 Golikov A. возникло прерывание, а дальше? флаг наличия прерыв... Aug 5 2015, 13:28 Грендайзер RabidRabbit, а не всё ли равно, с какой частотой с... Aug 5 2015, 14:46 scifi Цитата(Грендайзер @ Aug 5 2015, 17:46) Ла... Aug 5 2015, 15:57 Грендайзер ЦитатаПредставьте, что одна итерация "мигания... Aug 5 2015, 18:01 scifi Цитата(Грендайзер @ Aug 5 2015, 21:01) Не... Aug 5 2015, 18:04 Грендайзер да... это до меня дошло... завтра попробую ещё раз... Aug 5 2015, 19:01 Golikov A. вам не кейз надо делать, потому что попав в одно с... Aug 5 2015, 19:06 Грендайзер Снова здравствуйте. Вообщем промучился ещё день но... Aug 7 2015, 12:13 zltigo Это не проблема ARM, а проблема того, что сие ника... Aug 7 2015, 12:35 scifi +100500, пила там точно не получится.
Для начала н... Aug 7 2015, 12:43 Грендайзер Ну началось... Бог с ней с пилой... Мне не важно, ... Aug 7 2015, 13:20 zltigo QUOTE (Грендайзер @ Aug 7 2015, 16:20) а ... Aug 7 2015, 13:31 Грендайзер ЦитатаВы свое 'n' и 'dout' как-бы ... Aug 7 2015, 13:39 scifi Цитата(Грендайзер @ Aug 7 2015, 16:39) Ча... Aug 7 2015, 13:45 zltigo QUOTE (Грендайзер @ Aug 7 2015, 16:39) Ча... Aug 7 2015, 13:51 RabidRabbit Цитата(Грендайзер @ Aug 7 2015, 16:39) Ча... Aug 10 2015, 06:25 Грендайзер ЦитатаНу тогда так: не забыли приписать volatile к... Aug 7 2015, 13:47 scifi Цитата(Грендайзер @ Aug 7 2015, 16:47) Не... Aug 7 2015, 13:51 zltigo QUOTE (Грендайзер @ Aug 7 2015, 16:47) Не... Aug 7 2015, 13:55 scifi Кстати, а что надо-то? А то пока что и пила, котор... Aug 7 2015, 13:58 Грендайзер ЦитатаЧто на выходе получиться должно-то?
Должно п... Aug 7 2015, 14:11 scifi Цитата(Грендайзер @ Aug 7 2015, 17:11) Та... Aug 7 2015, 14:14 Грендайзер ЦитатаЛегко. Запретить прерывания на время проверк... Aug 7 2015, 14:20 scifi Цитата(Грендайзер @ Aug 7 2015, 17:20) Пр... Aug 7 2015, 15:46 Грендайзер Имею некоторый негативный опыт запихивания изрядно... Aug 7 2015, 17:18 scifi Цитата(Грендайзер @ Aug 7 2015, 20:18) Им... Aug 7 2015, 19:22 Грендайзер ЦитатаПардон, но вам до такого понимания как пешко... Aug 10 2015, 05:51 Грендайзер Вылезает. При выходе из прерывания, я его отключаю... Aug 10 2015, 07:14 Грендайзер Ну сейчас меня с гавн съедят, и всё же... Товарищ ... Aug 11 2015, 11:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|