Цитата(phenixs @ Dec 25 2015, 14:04)

Это все ужасно долго, нужно сделать 1 сдвиг, потом передача в DMA и т.д. потом еще сдвиг и т.д. всего 60 - 62 раза, а если делать так это ай-ай ............
Это "ужасно долго" делает именно IAR для восьмибитных процессоров.
Только система команд STM8 имеет возможность сдвига слова, что позволяет свести операцию над 64-разрядным типом
к 4-м операторам сдвига вместо 8-ми. С предварительным оператором очистки флага carry разумеется.
И так это он повторяет в цикле 62 раза для каждого i=(0x01)<<62;
Для ускорения разумнее организовать цикл с модификацией: i<<=1;
Если Вы желаете, чтобы это выглядело коротко на экране, то можете сделать что-то подобное:
#define SimpleShift(p, n) do{memset(p,0,8); p[n/8]<<=(n%8);}while(0);
и вместо i=(0x01) << 62 вставить
SimpleShift(&i, 62);