реклама на сайте
подробности

 
 
> ATxmega USART+DMA, не могу осилить
dimka76
сообщение Apr 5 2010, 09:17
Сообщение #1


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



вот инициализация USART
Код
/* PC3 (TXD0) as output. */
PORTC_OUTSET |= (1<<3) | (1<<2);
PORTC_DIRSET |= 1<<3;

/*  9600 */
USARTC0_BAUDCTRLA = 195;//0x03;
USARTC0_BAUDCTRLB = 0;//(9 << USART_BSCALE0_bp )  | (0x06);

/* USARTC0, 8 Data bits, No Parity, 1 Stop bit. */
USARTC0_CTRLC = 3;

/*  USART_Tx_Enable */
USARTC0_CTRLB = USART_TXEN_bm;


вот инициализация DMA

Код
        DMA.CTRL = DMA_ENABLE_bm; // Enable DMA
    DMA.CH0.ADDRCTRL =     DMA_CH_SRCRELOAD_NONE_gc     |
                        DMA_CH_SRCDIR_INC_gc         |
                        DMA_CH_DESTRELOAD_NONE_gc     |
                        DMA_CH_DESTDIR_FIXED_gc;
    

    DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_USARTC0_DRE_gc;
    DMA.CH0.TRFCNT = sizeof(str_5);
    //DMA.CH0.REPCNT = 1;

    DMA.CH0.SRCADDR0 = (( (uint32_t) str_5) >> 0*8 ) & 0xFF;
    DMA.CH0.SRCADDR1 = (( (uint32_t) str_5) >> 1*8 ) & 0xFF;
    DMA.CH0.SRCADDR2 = (( (uint32_t) str_5) >> 2*8 ) & 0xFF;

    DMA.CH0.DESTADDR0 = (( (uint32_t) (&USARTC0_DATA)) >> 0*8 ) & 0xFF;
    DMA.CH0.DESTADDR1 = (( (uint32_t) (&USARTC0_DATA)) >> 1*8 ) & 0xFF;
    DMA.CH0.DESTADDR2 = (( (uint32_t) (&USARTC0_DATA)) >> 2*8 ) & 0xFF;
    
    DMA.CH0.CTRLA = DMA_CH_BURSTLEN_8BYTE_gc;
    
    DMA.CH0.CTRLA |= DMA_CH_ENABLE_bm;
    DMA.CH0.CTRLA |=  DMA_CH_TRFREQ_bm;

    while( !(DMA.CH0.CTRLB & (DMA_CH_ERRIF_bm | DMA_CH_TRNIF_bm)) );


Отправляет один символ и все.
В строчке while( !(DMA.CH0.CTRLB & (DMA_CH_ERRIF_bm | DMA_CH_TRNIF_bm)) ); не виснет.

Что делать? Не могу понять (((


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016