Цитата(_Артём_ @ Nov 22 2012, 23:23)

Интересно, в чём смысл этих макросов:
я поначалу думал что ошибки с переменными идут от того что надо к ним обращаться через указатель this, поэтому что бы не исправлять написал такой макрос
Цитата(Сергей Борщ @ Nov 22 2012, 23:26)

А main() находится в .c или .cpp? Если в .c, то в определении функции в файле class.cpp вы должны указать ей спецификатор extern "C":
Да, main в .с файле.
extern тоже применял, но только наверно к main ф-ции, сегодня попробую так.
Цитата(Сергей Борщ @ Nov 22 2012, 23:26)

Так вы же эти две переменные указали статическими. Зачем - непонятно (буфер у вас нестатический),
это мой косяк - буфер должен быть статическим.
Цитата(Сергей Борщ @ Nov 22 2012, 23:26)

но раз уж вы их так объявили, то должны и определить их в глобальной области видимости:
[code]uint8_t UART1::current = 0, UART1::send_point = 0;
UART1 port;
я их специально в protected объявил, что бы они не были доступны из вне, а теперь они получаются будут глобальными переменными? Или все-таки в пределах модуля, но тогда поидеи перед ними
static требуется