Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

При чем тут volatile в моем примере - не понял. Но поставил. Как и ожидал - не влияет. >>

Отправлено VasilyS 13 июля 2008 г. 20:23
В ответ на: Поставьте где положено volatile и не приплетайте линукс и компилятор. отправлено Vit 13 июля 2008 г. 17:31

Вы поймите пож, что volatile на атомарность операций не влияет, поэтому для 8-разрядника не поможет. Как у Вас работало это чудо на 8-разряднике не знаю, но грабли я указал. Еще раз повторяю volatile не убирает неатомарность. И уровень оптимизации не влияет.
А компиляторозависимость приплел - у меня среда Monodevelop с C++, C#..., весьма чесная Linux-среда, Неработоспособность Вашего варианта проявилась в том, что компилятор при вычислении выражения в if увидел что произошло переполнение разрядной сетки и выбрал для результата бОльший тип. Вот ошибочка проявилась. А бороться с ней - известно как - явным приведением типов.
if( (unsigned short)(s_time-start) > (duration)) // ОК!
Вот и весь шурум-бурум с заемом. Насчет работы Вашего варианта с 8-разрядниками - верю, но что надежно - не верю.




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru