"доброе время суток!
вот уже второй день роюсь в нете и мануалах и туплю
вот вопрос: есть число размером 2 байта, его нужно передать по i2c, как разбить это число
на старший и младший байт
заранее благодарен"
попробуй выполнить преобразование типов данных:
//обозначаем двухбайтную переменную для передачи
volatile int var_for_transmission;
//разбивка на младший/старший байты
//send_i2c_data( char Data ) - условная функция пересылки однобайтных данных по и2ц

//преобразование к типу char позволит взять младший байт от двухбайтного числа
send_i2c_data( (char) var_for_transmission );
//предварительный сдвиг двухбайтного числа вправо на 8 и
//преобразование к типу char позволит взять старший байт двухбайтного числа
send_i2c_data( (char) (var_for_transmission>>8) );
кстати, параметер функции можно сделать типа int (т.е. send_i2c_data( int Data ) )
и эти преобразования производить внутри функции

преобразование типов очень классная штука преобразует любой тип данных в любой
volatile char VAR
(int) VAR //преобразует в int
(long int) VAR //преобразует в long int и т.д.
посмотри в help CVAVR в разделе Type Conversions