[an error occurred while processing this directive]
куда они могут пропасть? о чём вы говорите тем паче что анализ в маин. а есл по-вашему то это неправильная прога
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
m16
28 февраля 2006 г. 14:36
В ответ на:
Вам правильно уже сказали - если байт меняете в фоне, то (+)
отправлено <font color=gray>Беня</font> 28 февраля 2006 г. 14:09
Составить ответ
|||
Конференция
|||
Архив
Ответы
Объясняю (+)
—
Беня
(28.02.2006 15:22
83.170.240.226
, 1027 байт)
понятно то что вы привели пример не real-time программы если вы маин будете тормозить реакцию на внешнее(внутр) прерыванние имхо
—
m16
(28.02.2006 15:33
213.135.136.98
,
пустое
)
Пример как раз очень правильный
—
=AVR=
(28.02.2006 15:46
80.92.96.19
, 242 байт)
Это real-time программа. Что-то я не понял смысл Вашего замечания , а (+)
—
Беня
(28.02.2006 15:45
83.170.240.226
, 804 байт)
ОК. но(+)
—
m16
(28.02.2006 16:03
213.135.136.98
, 354 байт)
Можно и так - прерывание дает с помощью флага указания фону. Только время реакции на изменение будет больше (пока фон "поймет"). Можно еще написать процедурку, которой даешь новое значение, а она запрещает прерывания если надо, устанавливает значение и разрешает прерывания, если они были запрещены.
—
Беня
(28.02.2006 16:13
83.170.240.226
,
пустое
)
ОК .всё зависит от конкретной задачи .
—
m16
(28.02.2006 16:31
213.135.136.98
,
пустое
)
Частных случаев можно напридумывать сколько угодно, а Беня расписал общий случай как возможные причины и следствия недопонимания и недооценивания атомарных операций
—
=AVR=
(28.02.2006 16:11
80.92.96.19
,
пустое
)
согласен.частные случаи блин
—
m16
(28.02.2006 16:28
213.135.136.98
,
пустое
)
Поправлю: автор корневого поста - 0x16, а не m16. К тому же, он утверждает (или считает :), что пишет на ассемблере IAR
—
=AVR=
(28.02.2006 15:49
80.92.96.19
,
пустое
)
Ответ: Автор 0х16 пишет на Си и никогда не утверждал что пишет на ассемблере.
—
0x16
(28.02.2006 15:55
82.185.158.187
,
пустое
)
Автор 0x16 нагло брешет, вот цитата из корневого поста: "Программа строится под IAR Assembler for AVR" -->
—
=AVR=
(28.02.2006 16:07
80.92.96.19
,
пустое
,
ссылка
)
Ой, я авторов как раз и перепутал. Если пишут на ассемблере, тогда мои посты можно и не читать :-)) P.S. Зато когда будут обсуждать, надо ли знать ассемблер, когда пишешь на Си, то можно дать ссылку на мои посты :-))) Не пропадать же такому добру ;-)
—
Беня
(28.02.2006 15:54
83.170.240.226
,
пустое
)
Надо, всем это надо читать. А то так и будут считать, что пишут на ассемблере, и битфилдами пужать :))
—
=AVR=
(28.02.2006 16:08
80.92.96.19
,
пустое
)
Ответ: Спасибо Беня за совет. Но я пишу на Си, ассемблерный листинг смотрю в случае проблем . Как я уже сказал ранее , похоже что проблема заключалась как раз в отсутствии запрета на прерывание. Поставил на тест.Скоро будет видно
—
0x16
(28.02.2006 16:00
82.185.158.187
,
пустое
)
Ответ: Тест все таки не прошел(+)
—
0x16
(28.02.2006 16:21
82.185.158.187
, 453 байт)
Так что переменная DoProtocol меняется уже после проверки - какая разница до или после(+)
—
Михаил Е.
(28.02.2006 17:45
81.13.30.10
, 116 байт)
Ответ: OCR1B_Bit4 объявлена через стандартный макрос(+) и так как OCR1B в общем-то аппаратный регистр, то volatile не используется
—
0x16
(28.02.2006 18:14
82.185.158.187
, 1058 байт)
Ну, не знаю. Я для 2313 так объявлял(+)
—
Михаил Е.
(28.02.2006 19:00
81.13.30.10
, 3351 байт)
Ответ: Спасибо, все заработало. Просто нашел еще дыры где надо было закрыть прерывание. С Вашим кодом согласен полностью, но я использовал стандартный макрос из "iom8535.h" .
—
0x16
(28.02.2006 19:48
82.185.158.187
,
пустое
)
а стек увеличить не пробовали?? :))
—
Гм
(28.02.2006 17:31
62.141.123.8
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru