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

 
 
> Вываливание из цикла, Сбой в работе программы на Си
MakSV
сообщение Dec 19 2005, 12:10
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 35
Регистрация: 28-11-05
Из: Krasnodar
Пользователь №: 11 473



Программа измерения написанная на асе работает как часы проводя постоянное считывание данных от ацп к мк без сбоев c F=50 Hz, но написанный эквивалент на Си начал вываливаться из безконечного цикла с различной переодичностью от 3 до 20 секунд, при этом сорожевик на мк откл, используется 1 прерывание, но оно жёстко контролируется, причём передачей данных и съёмом руководит МК (mega 64), стек не переполняется, для хранение данных и используем 1 переменную типа long, Кто сталкивался с этой дилемой подскажите пожалуйста smile3046.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Георгий
сообщение Dec 20 2005, 07:46
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



К сожалению, прогон в Студии не всегда позволяет отметить переполнение стека или выход его в зону данных. Потому как в реальном исполнениии прилетают всякие прерывания, таймеры суетятся. Я буквально вчера с этим еще раз столкнулся столкнулся. Если читаю буфер одним способом, все хорошо, если сначала прочитаю ДРУГОй буфер , а потом прочитаю первый, то в первом два последних байта стабильно запорчены. Оказалось, что другой буфер я читал по прерыванию, и стек успевал заехать в первый буфер, хотя подсчет возможного размера стека с карандашиком в руках говорил, что места хватает.

Сообщение отредактировал Георгий - Dec 20 2005, 07:47


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:24
Рейтинг@Mail.ru


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