V_G 8 24 апреля, 2018 Опубликовано 24 апреля, 2018 · Жалоба Могу ли я объявить MOSI как выходной пин и зажигать им светодиод? А проверить физически не на чем? Попробуйте поэкспериментировать в симуляторе АВР студии. MOSI в любом случае должен быть объявлен как выход. С другой стороны, если к SPI подключен только термометр и никаких высокоскоростных устройств, что мешает сделать программную реализацию SPI? Там ведь все совсем не сложно, у вас исчезнет только возможность работы по прерыванию, что в случае с термометром непринципиально Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 24 апреля, 2018 Опубликовано 24 апреля, 2018 · Жалоба Физически не получилось, поэтому и полез в документацию и на форум в надежде найти подтверждение, что и не должно работать.. Или у всех работает, а только у меня не работает. Обойти сложившийся казус через SPI собственного производства конечно же можно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beard42 0 28 апреля, 2018 Опубликовано 28 апреля, 2018 · Жалоба На XMEGA не получится использовать незадействованные ноги SPI, если SPI активен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Всем привет! Очередной затык.. теперь с UART. Кому-нибудь удавалось менять скорость UART после его инициализации. В документации написано, что это возможно в том случае, когда передача и прием полностью завершены. Контролирую флаги в статусном регистре - на передачу (5 бит) в 1, на прием (7 бит) - 0. Пытаюсь сменить скорость и ничего не получается, UART работает со старой. Может кто ткнет носом, куда посмотреть?.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey190 2 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Всем привет! Очередной затык.. теперь с 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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Ну хоть у кого то работает) В вашем коде все понятно.. Вот нужно ли только каждый раз объявлять прерывания? Я использую библиотечные функции примерочного проекта по работе с UART, но там если покопаться те же регистры и те же команды, и есть функции по вычислению коэффициентов любой скорости. Сейчас пробовал играться с функцией инициализации, сначала ставил под одну скорость, следом с задержкой та же функция, но с другой.. По отдельности они работают, а последовательно не выполняется вторая. Как только проходит 1-ая запись данных в регистры скорости, происходит какая то блокировка и ничего уже поменять не могу. Есть подозрения на то, что к UART подцеплен полудуплексный RS-485, но как он может повлиять ума не приложу.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
antis 1 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только.. Переполнение переменной при арифметических операциях? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2 0 17 октября, 2021 Опубликовано 17 октября, 2021 · Жалоба Добрый день. Пытаюсь контролировать контрольную сумму памяти программ. Не получается прочитать флаш в Хмеге32. Подскажите пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freibier 3 17 октября, 2021 Опубликовано 17 октября, 2021 · Жалоба NVM-команды Flash-памяти FLASH_RANGE_CRC - Вычисление CRC для диапазона Flash-памяти Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2 0 18 октября, 2021 Опубликовано 18 октября, 2021 · Жалоба Спасибо! Примерчиком для IAP неподелитесь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться