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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> XMEGA еще жива?, Или лучше не связываться и взять ARM?
V_G
сообщение Apr 24 2018, 12:17
Сообщение #61


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Neznaika @ Apr 24 2018, 19:46) *
Могу ли я объявить MOSI как выходной пин и зажигать им светодиод?

А проверить физически не на чем?
Попробуйте поэкспериментировать в симуляторе АВР студии. MOSI в любом случае должен быть объявлен как выход.
С другой стороны, если к SPI подключен только термометр и никаких высокоскоростных устройств, что мешает сделать программную реализацию SPI? Там ведь все совсем не сложно, у вас исчезнет только возможность работы по прерыванию, что в случае с термометром непринципиально
Go to the top of the page
 
+Quote Post
Neznaika
сообщение Apr 24 2018, 13:20
Сообщение #62


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 4-04-07
Пользователь №: 26 768



Физически не получилось, поэтому и полез в документацию и на форум в надежде найти подтверждение, что и не должно работать.. Или у всех работает, а только у меня не работает. Обойти сложившийся казус через SPI собственного производства конечно же можно)
Go to the top of the page
 
+Quote Post
beard42
сообщение Apr 28 2018, 20:16
Сообщение #63


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 18-11-12
Пользователь №: 74 448



На XMEGA не получится использовать незадействованные ноги SPI, если SPI активен.
Go to the top of the page
 
+Quote Post
Neznaika
сообщение Jun 13 2018, 11:42
Сообщение #64


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 4-04-07
Пользователь №: 26 768



Всем привет! Очередной затык.. теперь с UART. Кому-нибудь удавалось менять скорость UART после его инициализации. В документации написано, что это возможно в том случае, когда передача и прием полностью завершены. Контролирую флаги в статусном регистре - на передачу (5 бит) в 1, на прием (7 бит) - 0. Пытаюсь сменить скорость и ничего не получается, UART работает со старой. Может кто ткнет носом, куда посмотреть?..
Go to the top of the page
 
+Quote Post
Андрей190
сообщение Jun 14 2018, 07:18
Сообщение #65


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 24-12-06
Из: Орел
Пользователь №: 23 838



Цитата(Neznaika @ Jun 13 2018, 14:42) *
Всем привет! Очередной затык.. теперь с UART. Кому-нибудь удавалось менять скорость UART после его инициализации. В документации написано, что это возможно в том случае, когда передача и прием полностью завершены. Контролирую флаги в статусном регистре - на передачу (5 бит) в 1, на прием (7 бит) - 0. Пытаюсь сменить скорость и ничего не получается, UART работает со старой. Может кто ткнет носом, куда посмотреть?..


у меня все работает. идет подбор скорости для GPS приемника. флаги не контролирую, но смена скорости происходит (GPS приходят как со скоростью 9600, так и 115200).
использую ATXMEGA А4U от 32 до 128
Код
  __flash static unsigned int bscale[] =   {1666, 832, 416, 207, 103,  68,   51,   34,    16}; // for 16MHz
  USARTD1.CTRLA  = (unsigned char)USART_RXCINTLVL_MED_gc|USART_TXCINTLVL_LO_gc;
  USARTD1.CTRLB = USART_RXEN_bm | USART_TXEN_bm | USART_CLK2X_bm;
  USARTD1.CTRLC = 0x03;
  b = bscale[a];
  USARTD1.BAUDCTRLA = b&0xff;
  USARTD1.BAUDCTRLB = b>>8;

Go to the top of the page
 
+Quote Post
Neznaika
сообщение Jun 14 2018, 08:30
Сообщение #66


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 4-04-07
Пользователь №: 26 768



Ну хоть у кого то работает) В вашем коде все понятно.. Вот нужно ли только каждый раз объявлять прерывания? Я использую библиотечные функции примерочного проекта по работе с UART, но там если покопаться те же регистры и те же команды, и есть функции по вычислению коэффициентов любой скорости. Сейчас пробовал играться с функцией инициализации, сначала ставил под одну скорость, следом с задержкой та же функция, но с другой.. По отдельности они работают, а последовательно не выполняется вторая. Как только проходит 1-ая запись данных в регистры скорости, происходит какая то блокировка и ничего уже поменять не могу. Есть подозрения на то, что к UART подцеплен полудуплексный RS-485, но как он может повлиять ума не приложу..
Go to the top of the page
 
+Quote Post
Neznaika
сообщение Jun 14 2018, 10:02
Сообщение #67


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 4-04-07
Пользователь №: 26 768



Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только..
Go to the top of the page
 
+Quote Post
antis
сообщение Jun 14 2018, 10:40
Сообщение #68


Участник
*

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



Цитата(Neznaika @ Jun 14 2018, 13:02) *
Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только..


Переполнение переменной при арифметических операциях?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 20:48
Рейтинг@Mail.ru


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