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

 
 
 
Reply to this topicStart new topic
nullakilla
сообщение Apr 27 2010, 13:52
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 7-05-09
Пользователь №: 48 785



Прием данных по SSC с использованием PDC работает замечательно, а вот когда инициализирую регистры PDC в SSC для передачи данных и разрешаю прерывание конца передачи ENDTX, то прерывание выполняется сразу, хоть данные и не передаются. В обработчике прерывания SSC если прерывание вызвалось от конца передачи ENDTX, то прерывание конца передачи запрещается.

Код
AT91C_BASE_SSC->SSC_TCMR = //(1 << 8)            //START transmit on receive start
                            ;
AT91C_BASE_SSC->SSC_TFMR = AT91C_SSC_MSBF                    //msbf
                                | (15)                            //datlen 16 bits per frame
                                | (15 << 16)                    //fslen 16 bits per frame
                                | (AT91C_SSC_FSOS_POSITIVE << 20) //?syncronization with receive frame signal
                                ;


Мне нужно передачу включать только по сигналу получения фрейма и биты передавать синхронно с получением.
Уже перепробовал кучу комбинаций настроек, но все не выходит sad.gif
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Apr 28 2010, 04:22
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(nullakilla @ Apr 27 2010, 16:52) *
Прием данных по SSC с использованием PDC работает замечательно, а вот когда инициализирую регистры PDC в SSC для передачи данных и разрешаю прерывание конца передачи ENDTX, то прерывание выполняется сразу, хоть данные и не передаются. В обработчике прерывания SSC если прерывание вызвалось от конца передачи ENDTX, то прерывание конца передачи запрещается.

Код
AT91C_BASE_SSC->SSC_TCMR = //(1 << 8)            //START transmit on receive start
                        ;
AT91C_BASE_SSC->SSC_TFMR = AT91C_SSC_MSBF                    //msbf
                                | (15)                            //datlen 16 bits per frame
                                | (15 << 16)                    //fslen 16 bits per frame
                                | (AT91C_SSC_FSOS_POSITIVE << 20) //?syncronization with receive frame signal
                            ;


Мне нужно передачу включать только по сигналу получения фрейма и биты передавать синхронно с получением.
Уже перепробовал кучу комбинаций настроек, но все не выходит sad.gif


AT91C_BASE_SSC->SSC_TCMR = //(1 << 8)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 23:16
Рейтинг@Mail.ru


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