Цитата(KeySi @ Apr 21 2010, 19:53)

Есть ли у кого простой пример реализации обмена данными по com порту с компьютером.
Простенький пример для DBGU.
Код
#define DRXD (1UL << 27)
#define DTXD (1UL << 28)
#define DBGU_BAUDRATE 115200
unsigned int mck = 48000000;
void dbgu_ini(void)
{
AT91C_BASE_SYS->PIOA_PDR = DRXD | DTXD;
AT91C_BASE_DBGU->DBGU_MR = AT91C_US_USMODE_NORMAL | AT91C_US_PAR_NONE;
AT91C_BASE_DBGU->DBGU_BRGR = (mck + (DBGU_BAUDRATE * 8)) / (DBGU_BAUDRATE * 16);
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_TXEN + AT91C_US_RXEN;
AT91C_BASE_DBGU->DBGU_IDR = ~0;
}
void dbgu_send_byte(unsigned int byte)
{
while(!(AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXRDY));
AT91C_BASE_DBGU->DBGU_THR = byte;
}
А уж дальше разбирайтесь самостоятельно. То же самое можно сказать и по следующему вопросу -
Цитата(KeySi @ Apr 21 2010, 23:46)

И еще, для IAR есть функция реализации задержки?)) Нет, не циклом фор, а что бы сек. совпадали реальности -)
У процессора имеется целый набор различных таймеров - RTT, PIT, TC. Описание их работы и примерные области применения подробно изложены в документации на процессор.