Цитата(Firer @ Apr 16 2012, 23:35)

т.е. 4 такта? Или я не прав?
Очень часто инструкция выполняется не за 1 такт. В документе "Cortex-M3 Technical Reference Manual" описывается время выполнения инструкций. Дополнительные задержки могут возникать при обращении процессора к внешним шинам (APB, флэш и прочее).
Кроме того, более оптимальный код такой:
Код
int pdata1 = 0x0000, pdata2 = 0x0200;
while (1)
{
PORT = pdata1;
PORT = pdata2;
}
Ну и компилировать с максимальной оптимизацией по скорости.
А на ассемблере можно сделать оптимально без оглядки на компилятор.
Update:
Да, забыл.
Цитата(Firer @ Apr 16 2012, 23:35)

Ну если еще мост добавит 2 раза по 2 цикла задержки, то выходит около 10 тактов?
А это 7.2МГц а не 3.6.
Нет, это не 10, а 20 тактов. Одна итерация цикла в таком виде - это половина периода ("0" - 10 циклов, "1" - 10 циклов, ...).