Послать несколько байт в SPI
- Войдите на сайт для отправки комментариев
Пнд, 23/12/2019 - 14:13
Уважаемые форумчане !
В описании http://arduino.ru/Reference/Library/SPI/transfer
велят посылать один байт.
Я так понимаю, что при этом выдается сигнал SCK на время передачи.
А если у меня код длиннее, что делать ?
делать это несколько раз... "до удовлетворения"
https://www.arduino.cc/en/Reference/SPITransfer
Syntax
receivedVal = SPI.transfer(val)
receivedVal16 = SPI.transfer16(val16)
SPI.transfer(buffer, size)
Parameters
val: the byte to send out over the bus
val16: the two bytes variable to send out over the bus
buffer: the array of data to be transferred
Спасибо !
А там не написано сколько байт можно посылать.
Параметр size в битах или в байтах ?
В байтах.
Посылать можно столько, сколько памяти в МК припаяно:
Два спасиба !
Я вчера вечером первый раз включила Ардуино, а сегодня решила написать драйвер для DDS AD9910.
Много работала на 8051 итп лет 15-20 назад.
Осталось понять, где у него ассемблер и сгенерированный код. И сколько тактов идет на команду.
Много работала на 8051 итп лет 15-20 назад.
Осталось понять, где у него ассемблер и сгенерированный код. И сколько тактов идет на команду.
О... сейчас тут набегут, хвосты распушат...
А что, непременно ассемблер нужен?
http://microsin.net/programming/avr/avr-gcc-inline-assembler.html
По тактам это, наверное, сможет помочь: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-0856-AVR-Instruction-Set-Manual.pdf
Не знаю, какие нынче компиляторы. Отстала от моды.
Может мне и не ассемблер нужен, а симулятор, выдающий временные диаграммы в тактах.
А последовательный порт работает только до 115200 ?
Абыдно, да...
А последовательный порт работает только до 115200 ?
Может и выше: https://forum.arduino.cc/index.php?topic=21497.0
Интересная картина получается, люди, которые знают слова ассемблер и такт на команду, совершенно не гнушаются задавать вопросы в песочнице, а которые даже про бейсик не слыхали, постят куда угодно, но не сюда?????))))) Где логика?(с).
Я с 328PB принимал в один на 115200, отправлял в другой дебаг на 230400. Посередине парсил...
bwn, человек без медицинского понимания тоже все таблетки подряд жрёт. А который с пониманием - только полезные.
Интересная картина получается, люди, которые знают слова ассемблер и такт на команду, совершенно не гнушаются задавать вопросы в песочнице,
А чего бы и нет, если я вчера в первый раз включила ?
Здесь быстрее ответят.
Кстати ответ "послать байты несколько раз" - не подходит.
Там будет прерываться Chip-Select.
https://github.com/JQIamo/AD9910-arduino
А последовательный порт работает только до 115200 ?
Может и выше: https://forum.arduino.cc/index.php?topic=21497.0
Ага, значит Ардуино может, а комп не хочет ?
Он родил порт COM4 и дает выбор скоростей до 128000.
Ага, попробовала задавать скорость через LabView.
230400 - работает.
460800 - нет.
Работает 256К, 512К, 1024К.
1М, 2М
4М не работает, потому что комп не захотел так конфигурить порт USB2.
В другой раз попробую на компе с USB3,
Класс !
Ну совсем классно !
Интересная картина получается, люди, которые знают слова ассемблер и такт на команду, совершенно не гнушаются задавать вопросы в песочнице,
А чего бы и нет, если я вчера в первый раз включила ?
Здесь быстрее ответят.
Это ни к Вам относилось, важна вторая часть, когда один неофит сложение-вычитание в разделе "Программирование" проходит, другой, блинк на делеях в "Проекты" постит, третий в "Аппаратных" выясняет, граунд это плюс или минус у батарейки и почему стартер от А23 не крутиться.(((((
Не знаю, какие нынче компиляторы. Отстала от моды.
Может мне и не ассемблер нужен, а симулятор, выдающий временные диаграммы в тактах.
Компиляторы нынче avr-gcc и IAR.
Симулятор есть в Atmel Studio (бесплатный и вполне рабочий) и в IAR (раньше был кривой и платный).
Кстати, симулятор Atmel умеет и IAR-овские программы симулировать.
Ну, и есть ещё почти настоящий отладчик в Атмел Студии от VisualMicro, но он условно-платный (как и весь VisualMicro).
Приятно встретить коллегу по 8051)
Мой восторг несколько поостыл, когда я включила осциллограф и запустила минимальный цикл включить/выключить фонарик.
Оказалось 5 мксек.
Что-то я не поняла, чем оно занимается столько времени на 16 МГц-ах.
Процессор - наверняка похож на линию 8051 и ADUC832.
То есть, если хочешь что-то делать быстро - надо возвращаться на Ассемблер.
Мой восторг несколько поостыл, когда я включила осциллограф и запустила минимальный цикл включить/выключить фонарик.
Оказалось 5 мксек.
Что-то я не поняла, чем оно занимается столько времени на 16 МГц-ах.
если торопишься, то тебе сюда: http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry и в CyberLib
например, на это посмотреть:
Любит наш народ
всякоесоздавать проблемыладно бы только себе
плохо, когда и остальным
а ещё есть микроконтроллеры пошустрее
Ускорим a little bit:
Ускорим a little bit:
8 МГц, быстрее для 328 некуда. А когда я начинал на 51-х, предел программного генератора был что-то около 250 кГц.
В прошлом году столкнулся о проблему, что контроллеры очень медленные, даже 72 Мгц мало. Оказалось ПЛИС - решение, когда надо логику и счётчик. Они умеют делать синхронно и очень быстро. С месяц освоиться только, там очень IDE необычные.
Всем огромное спасибо !
Буду разбираться. Правда, у меня психологическая несовместимость с СИ, с очень древних времен.
Писала на Паскале - либо сразу на Ассемблере.
Пока - возвращаюсь к своим ПЛИСам, VHDL/LabView.
И погляжу готовый драйвер на AD9910.