termostat: Все сообщения за 27 Июня 2005 года

 
ПнВтСрЧтПтСбВс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

termostat

аксакал


Mishka > ты уж, побудь редактором, пожалуйста.
 


Я не могу быть редактором, так как действительно не знаю этого. Я думаю,
что те кого это действительно интересует могут найти статьи в интернете.

Mishka >
1. Рекурсивная функция — это функция вызывающая сама себя.
 


в программисткой форме так? :

code text
  1. recursivnaya_func {
  2.  
  3. // какой то код
  4.  
  5.  recursivnaya_func ();
  6.  
  7. // какой то код
  8.                   }




Mishka >
2. Реентерабельная функция — это такая функция, которая не хранит
внутреннего состояния
 


т.е. в ней не объявляются переменные типа: static ?

Mishka >
т.е. гововоря другими словами, может быть (но не обязана)
вызвана без последствий несколько раз.
 


в принципе ВСЕ функции и нужны для того чтоб вызывать
много раз один кусок рограммы.

Наверно ты хотел сказать: "может быть вызвана несколько раз не дожидаясь её завершения", т.е. в ходе выполнения.

об этом сказал и Андрей Суворов.

в программисткой форме так? :

code text
  1.  
  2. interrupt_1 { // это обработчик прерывания
  3.  
  4. // какой то код
  5.  
  6. reentabelnaya_func();
  7. // какой то код
  8.  
  9. }  
  10.  
  11. ..............
  12.  
  13. ..............
  14.  
  15. reentabelnaya_func {
  16.  
  17. // прерывания разрешены
  18.  
  19. // какой то код во время исполнения которого
  20. // может происходить прерывание - interrupt_1
  21.  
  22.                    }
  23. ..............



Первые рекомендации что приходят на ум:

1. Избегать по возможности таких ситуаций в программе

2. Очевидно в таких случаях нельзя в вункциях работать с глобальными переменными.

3. Не понятно что быдет с локальными переменными и static - возможность их сохранения зависит наверно от глубины стека.

здесь по видимому и проявляется "заточеность" AVR под Си - под стек в AVR по моему может использоваться все ОЗУ, в отличии от PIC'ов где стек аппаратный и не глубокий.

Но всеравно на PIC'ах сделано ОГРОМНОЕ колич проф. пром. устройств высокой сложности - значит обсуждаемые нами проблемы не так и страшны.


Mishka >
3. race-condition — попадаем в ситуацию, которая просто не может быть. Это очень актуально для прерываний.

Если есть интерес, то могу привести простенькие примеры.
 



Я могу представить попадание в непредвиденую ПРОГРАММИСТОМ ситуацию - это не проработаность, не продуманость алгоритма либо ошибки програмное его реализации.

Но ! КАК можно попасть в ситуацию, которой просто не может быть. Опыт - критерий истины в науке, т.е. если мы попали в ситуацию то она безусловно может быть - она уже случилась по меньшей мере 1 раз.

Или я не правильно тебя понял?


Mishka >
Мне кажется, что у любого человека, который пишет нетривиальную программу (более, чем на одну страницу) есть желание выделить повторяющиеся куски кода в отдельные процедуры, и, затем, их переиспользовать.
 


Ну дак в этом и есть смысл использования функций. Посмотри примеры к компиляторам Си для МК - даже самые маленькие проги содержат функции - просто это очень удобно.


Вобщем можно поробовать написать маленькую прогу с множественным вызовом не завершенной функции со счетчиком вызовов и посмотреть в симуляторе VMLAB "заклинит" ли прогу и как быстро и где "узкое место".


Но меня не покидает ощущение искуственности обсуждаемой проблемы - потому что при чтении обсуждения возникает ощущение что для МК вообще не возможно написать жизнеспособную программу - но известно что это не так.


Mishka >
Теперь по примерам из ссылок.
 


Я не разбирал эти примеры, просто сообшил о них. поэтому не могу ни чего сказать.

Когда я даю провереные мной примеры я об это говорю "проверил, да, работает!"

termostat

аксакал

Samsung щас рекламирует в-камеру с отстегивающимся объективом - такой цилиндр с проводом. Идеально для выноса за корпус большой ракеты на кранштейне.

Записывает она видео по моему на флаш-диск, модель не знаю и в магазинах пока не знают.

termostat

аксакал

Здесь они:


SAMSUNG Russia-Main

Imagine what Samsung can do for you! You'll find product and support information for our TVs, mobile phones, video & audios, computers and related products, various home appliance products, core components that make other products better, and of course, information about our company.

// www.samsung.ru
 


в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru