Цитата(asmon @ May 22 2008, 18:22)

А кто может обьяснить назначение директивы хайтека
#pragma inline func_name ?
По логике С++ функци с этой директивой должны быть подобны макросам.
И тогда обсуждаемая проблема отпадёт сама собой (и вырастет код

). Но как - то непонятно эта директива описана в даташите и в своё время я с ней не разобрался...

И не разбирайтесь - для мелких пиков не актуально. Из мануала к писс 9.60:
Цитата
The #pragma inline directive is used to indicate to the compiler that a function is to be inlined.
The directive is only able to be used on functions that are hard coded in the code generator of the
compiler. User defined and library function are not able to be inlinded.
2
Grigorij: а зачем Вам что-то передавать не в прерывании? Положили все, что нужно, (через Ваш send_byte() или как-нибудь еще) в (кольцевой) буфер передачи, установили TXIE = 1, и контроллер, если не занят передачей, сразу попадает в прерывание УСАРТа. В прерывании кидаете очередной байт из буфера в TXREG. Когда все данные будут переданы, останется только сделать TXIE = 0. Нужда в дублировании функций и прочем геморе при этом не возникает. (кста, прошная версия писс сама сделает дубль функции, используемой и в прерываниях, и вне их).
И дергать конфиг УСАРТа перед каждым байтом совершенно бессмысленно - один раз настроились (можно и автободом, если он нормально работает, т.е. сначала читаем ерраты на используемый кристалл) и забыли.