[an error occurred while processing this directive]
|
Делал нечто подобное. Нарвался на следующие тонкости:
Важен порядок запуска. Сначала DMA затем BSP. Внимательно проверить размеры, которые пишутся в регистры. Там иногда 1 отнимать надо, иногда нет.
Дабы легче было отлаживаться делал в BSP размер кадра больше чем нужно и вставлял битик игнорировать лишние фреймы.
DMSA = DMCECTL_SADDR;
DMSDN = 0
|(DMCECTL_SET_RESET) // Sets the DE bits
|(DMCECTL_CH2) // ?nables DMA channel
|(DMCECTL_CH3) // ?nables DMA channel
;
/*-------------------------------------------------------------------*/
/* Serial Port Control Register 1 (SPCR1) */
/*-------------------------------------------------------------------*/
SPSA2=SPCR1_SADDR;
SPDR2=SPDR2
|(SPCR1_RRST);//The serial port receiver is enabled.
/*-------------------------------------------------------------------*/
/* Serial Port Control Register 2 (SPCR2) */
/*-------------------------------------------------------------------*/
SPSA2=SPCR2_SADDR;
SPDR2=SPDR2
|(SPCR2_XRST) // The serial port transmitter is enabled.
;
E-mail: info@telesys.ru