Мигать светодиодом. ARM или не-ARM?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение scorpi_0n »

ЗочОт тебе, любишь своим носом в чужом белье поковыряться. :)))
Ну давай уже что нибудь по теме, расскажи как у тебя прогресс в регрессе.
Ну а так... Кто кодил микрочипы, тот в цирке не смеётся. Отсутствие выбора средств разработки для пиков, говорит уже о многом. Ну разве что не тебе.
Реклама
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Zhuk72 »

А что плохого в МПЛаб?
Отсутствие выбора отнюдь не минус, если этот почти единственный выбор вполне нормален.
Любители толерантного европейского подхода могут выбрать МикроС и даже МикроПаскаль. Желающие получить минимум ответов на свои вопросы выбирают Баском. Больше ничего на ум не приходит.
Зато нет войн Кейл vs Иар vs Эклипс vs ГСС vs Куб vs дырдырдыр и еще не знаю что.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

Zhuk72 писал(а):Желающие получить минимум ответов на свои вопросы выбирают Баском.
Непохоже чтобы ответов было минимум http://radiokot.ru/forum/viewtopic.php?f=57&t=6408
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение АСУ »

[uquote="scorpi_0n",url="/forum/viewtopic.php?p=3148687#p3148687"]ЗочОт тебе, любишь своим носом в чужом белье поковыряться. :)))[/uquote]
http://radiokot.ru/forum/viewtopic.php? ... 6#p3147836
У тебя уже полон рот, чего тебе давать… прожуй хоть это!!! :)))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Zhuk72 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3148698#p3148698"]Непохоже чтобы ответов было минимум http://radiokot.ru/forum/viewtopic.php?f=57&t=6408[/uquote] Речь шла о ПИКах и отсутствии альтернативы МПЛаб.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3148644#p3148644"]ешкин кот, натолкнули на мысль, можно ж еще мигать DMA на STM32.
Применить можно, например в машине, у кого нет охранной сигнализации, будет имитация. :)[/uquote]
Я даже быстренько набросал прогу:
Спойлер

Код: Выделить всё

const uint32_t data[12] = { 0x8000'0000, 0x8000, 0x8000'0000, 0x8000'0000, 0x8000, 0x8000, 0x8000'0000, 0x8000'0000, 0x8000'0000, 0x8000, 0x8000, 0x8000 };

int main()
{
    periphClockEnable(AHBPeriph::GpioA);
    PinA<15> led(PinMode::PushPull_HighSpeed);

    Dma1Ch3 dma;
    dma.initMemToPeriph((void*)data, DmaDataSize::_32, true, (void*)&GPIOA->BSRR, DmaDataSize::_32, 12, DmaPriority::Low, true);

    Timer16 tim(7999, 200);
    tim.dmaReqEnable(TimReq::Update);

    dma.enable();
    tim.enable();

    while (1) 
    {
    }
}
Таймер каждые 200ms пинает DMA, тот берет из массива данные и выводит в порт, при этом меняется только один пин со светодиодом, который моргает 3 раза, каждый последующий период длиннее предыдущего и потом все зацикливается. Показательно, что тут любители 8-ми биток ругают нас за использование излишних мощностей ARM, а любители ARM частенько выражают свое недовольство касательно подобного шаблонного кода, типа С++ на мк непозволительная роскошь, хотя там внутри то же самое, что они написали бы руками на С :)
Реклама
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Zhuk72 »

[uquote="Reflector",url="/forum/viewtopic.php?p=3148704#p3148704"]... типа С++ на мк непозволительная роскошь, хотя там внутри то же самое, что они написали бы руками на С :)[/uquote]
Ну, для справедливого суда надо то же самое в CMSIS написать, а потом сравнить полученный асм.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение АСУ »

[uquote="scorpi_0n",url="/forum/viewtopic.php?p=3148687#p3148687"]Ну а так... Кто кодил микрочипы, тот в цирке не смеётся.[/uquote]
Неее... тут невозможно удержаться :music:
scorpi_0n писал(а):Так надо не учить а понимать. А страшного ничего там нет.
ответ ему:
Вы месяц назад задавались вопросом "с чего начать изучение МК?". Вы либо феномен, либо вам следует пойти колотить понты куда нибудь в другое место.
scorpi_0n писал(а):Просто не надо обрастать комплексами. Не святые горшки лепят. Хотите сказать что МК не для среднего ума? А с битами и регистрами в любом МК придётся разбираться. Дело в терпении и желании.
ответ ему:
Вот когда разберетесь, тогда и будете рассуждать о том, страшно это или не страшно. Сейчас же вы даете ответ, не имея ни малейшего представления о вопросе.
scorpi_0n писал(а):Не совсем так. TFT дисплей к STM8 прицепил. Скорость заливки экрана одним цветом 19 миллисек. С частотомером на STM32 почти разобрался. С SPI никаких трудностей не возникло. Поэтому не понятно о чём речь когда говорят о незадокументированных нюансах. Делал всё по референсу.
До сих пор живот болит… :))) ну ты чудило!!! :love: А пузыри надуваешь справно… хомячки клюют? Или уже не?! :))

Чуть не забыл... http://radiokot.ru/forum/viewtopic.php? ... 5#p2571115
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение scorpi_0n »

АРМы идут! Можешь сразу с окна выбрасываться. :)))
И не ищи черную кошку в тёмной комнате, она в другом доме живёт. :)))
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="Zhuk72",url="/forum/viewtopic.php?p=3148713#p3148713"]Ну, для справедливого суда надо то же самое в CMSIS написать, а потом сравнить полученный асм.[/uquote]
Там внутри все на регистрах и написано. Например, при инициализации DMA идет запись адресов в CPAR и CMAR, размера в CNDTR и еще 5 параметров пакуются в channel()->CCR, где channel это функция возвращающая один из кастованных параметров шаблона, но если передать эти 5 параметров как один и явно прописать DMA1_Channel3->CCR, то размер не поменяется, что не удивительно, ведь там одни константы. Распишешь ты инициализацию этих регистров в 4-5 строк и сгенерится тот же самый код, но наглядность упадет и появится больше возможностей совершить ошибку. Например, можешь с ходу сказать если DMA будет копировать из памяти в память, то источником будет CPAR или CMAR? Если же оформить все в виде Сишных функций, то придется передавать 1-2 лишних параметра ничего на этом не выиграв.
Аватара пользователя
SIM31
Это не хвост, это антенна
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение SIM31 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3148659#p3148659"]На меге можно сделать по нормальному на UART, но народ предпочитает ногодрыг. :)))[/uquote]

Если речь об 1-wire там много подводных камней. Лучше всего ногодрыг на легендарной Atmega 328. Ничего лучшего не придуманно. Напряжение можно сразу выдавать в диапазоне 2-5В, токи достаточные и прочее.

На UART упираемся в ограничения таймингов UART. На столе всё работает, а когда линия в 100 метров начинается шаманство. Ногодрыгом можно подибрать интервалы по микросекундам(!). А с UART можно в принципе подстраивать RC цепочками, может помочь, может нет. Импульс от датчика может придти таким коротким, что UART его не распознает и правильно сделает. А при анализе шины вручную, можно извлекать биты бесценной информации.

У нас так подрядчики бассейн делали, на стене висит табло огромное, температуру воды передает датчик DS18b20. Кабель связи проложили в трубе и забетонировали всё на этапе строительства. Сначала работало всё, потом выросла влажность, емкость изоляции и тайминги сбились. Они предложили решить проблему напаиванием RC цепочки у датчика, в 5 см от уровня воды :shock: Ну я так и сделал, заработало, но коррозия все равно уничтожит эту конструкцию. Монолитный кабель разрезан, всё пропало :)
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение АСУ »

[uquote="Reflector",url="/forum/viewtopic.php?p=3148704#p3148704"]...который моргает 3 раза, каждый последующий период...[/uquote]
Не совсем понял мысль твоего алгоритма… мигает в периоде 3 раза? Пояснить можешь?
Аватара пользователя
SIM31
Это не хвост, это антенна
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение SIM31 »

[uquote="Reflector",url="/forum/viewtopic.php?p=3148704#p3148704"]Таймер каждые 200ms пинает DMA, тот берет из массива данные и выводит в порт, при этом меняется только один пин со светодиодом, который моргает 3 раза, каждый последующий период длиннее предыдущего и потом все зацикливается[/uquote]

Тут основной плюс, что можно формировать очень короткие импульсы и высокие частоты. Я разбирал код для Arduino Due, там тоже использовали DMA для получения импульса в десяток наносекунд. Это был стенд для проверки китайских IGBT транзисторов, полезная штука.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение scorpi_0n »

2Reflector
Корявый пример. В стм32 нет такого гемороя с дма как в стм8л. Что ПАР, что МАР - все едино. Все определяется битом направления пересылки. А бит м2м определяет только отсутствие необходимости эвентов от периферии. Но в итоге можно крутить как угодно, лишь бы это имело смысл и давало нужный результат. Как и пресловутое "один канал - один эвент" это предупреждение в референсе, но не обязательство. По крайней мере два эвента на один канал юзал успешно и не раз, что позволяло экономить каналы дма.

Добавлено after 10 minutes 32 seconds:
[uquote="SIM31",url="/forum/viewtopic.php?p=3148758#p3148758"]Если речь об 1-wire там много подводных камней. Лучше всего ногодрыг на легендарной Atmega 328. Ничего лучшего не придуманно. Напряжение можно сразу выдавать в диапазоне 2-5В, токи достаточные и прочее.
)[/uquote]
Чушь все это. И никому такое больше не говори.
На стм32 ни ногодрыг не нужен, ни юарт. Все остальное сказки и страшилки для непосвященых, которые на стм32 обнуляются на раз, вплоть до самоподстройки и самокалибровки.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="АСУ",url="/forum/viewtopic.php?p=3148760#p3148760"]Не совсем понял мысль твоего алгоритма… мигает в периоде 3 раза? Пояснить можешь?[/uquote]
В массиве фактически находятся 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, т.е. 200ms светодиод не горит, 200 горит, 400 не горит, 400 горит, 600 не горит, 600 горит и зацикливается. Исключительно для проверки, естественно на одном канале DMA и таймере можно зажигать 16 светодиодов как тебе вздумается. Допустим, имея таблицу на 256 значений можно получить 16 аппаратных 8-ми битных шимов.

[uquote="scorpi_0n",url="/forum/viewtopic.php?p=3148763#p3148763"]Корявый пример. В стм32 нет такого гемороя с дма как в стм8л. Что ПАР, что МАР - все едино. Все определяется битом направления пересылки. А бит м2м определяет только отсутствие необходимости эвентов от периферии.[/uquote]
Ну выставил ты бит MEM2MEM, а копируем из памяти в память, из CPAR в CMAR, но это далеко не очевидно.
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение АСУ »

[uquote="scorpi_0n",url="/forum/viewtopic.php?p=3148763#p3148763"]Чушь все это. И никому такое больше не говори.[/uquote]
Членистоногий, раз не меняешь свой тон общения - продолжу… :P
ответ на совет знающего scorpi_0n :
А какое отношение вами написанное имеет к управлению комплементарными выходами канала сравнения таймера? Вы даже в тему ухитряетесь не попасть с ответом. С тем, что у вас заработали чужие примеры, я вас поздравляю, но этого мало, чтобы с апломбом вещать "Так надо не учить а понимать. А страшного ничего там нет."
scorpi_0n писал(а):А что с комлементарными не так? Если знаете то поделитесь информацией. Если не знаете пусть кто-то другой скажет что с ними не так.
ответ:
Вот разберетесь и расскажете. А до этого момента ваше "авторитетное мнение" не оставляет сомнений в том, что это колочение понтов и ничего больше.
scorpi_0n писал(а):Я спросил что с комплементарными не так. Нет ответа? Не засоряйте тему.
Если что-то не так с SPI то и скажите что не так. А то вроде как всё не так а внятно никто ничего сказать не может.
ответ:
Право засорять тему своим "авторитетным мнением" принадлежит только вам? Сделайте милость, умерьте свое ЧСВ и не указывайте другим, что им делать... Вы даже не поняли, о чем идет речь, но при этом заявили, что "страшного ничего там нет". Тут бы самое время спросить -- а "там" -- это где, но после такого подхода я вообще испытываю сильнейшие сомнения, что есть смысл продолжать разговор.
«Гуру» (scorpi_0n) по-детски тупанул, так как обычно при таких раскладах он ныряет в норку, а тут разговорился и вляпался в очередной раз в свою лепёшку… :)))
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение scorpi_0n »

2Reflector
А что там должно быть очевидно? Как настроил дма, такой результат и получил. Это и будет очевидностью. Чтобы копировать из памяти в память м2м выставлять не обязательно, по сути, можно и без него. Но тогда нужен эвент периферии. В остальном мар-пар пар-мар определяет бит направления пересылки, а что там в пар адрес периферии или адрес памяти - не важно, все определяется желаемым результатом. Вот в стм8 только один канал полноценный, там это уже играет роль.
Последний раз редактировалось scorpi_0n Пт июл 21, 2017 00:05:20, всего редактировалось 1 раз.
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение АСУ »

[uquote="Reflector",url="/forum/viewtopic.php?p=3148774#p3148774"]В массиве фактически находятся 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, т.е. 200ms светодиод не горит, 200 горит, 400 не горит, 400 горит, 600 не горит, 600 горит и зацикливается. Исключительно для проверки, естественно на одном канале DMA и таймере можно зажигать 16 светодиодов как тебе вздумается. Допустим, имея таблицу на 256 значений можно получить 16 аппаратных 8-ми битных шимов.[/uquote]
Теперь понял…
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение scorpi_0n »

АСУ, тебя капитально заклинило! Пойди помойся и одень чистое бельё - АРМы идут! :)))
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="scorpi_0n",url="/forum/viewtopic.php?p=3148780#p3148780"]А что там должно быть очевидно? Как настроил дма, такой результат и получил. Это и будет очевидностью.[/uquote]Из названий регистров CPAR в CMAR можно понять откуда куда копируется если выбран режим MemToPeriph или PeriphToMem, но когда копируется из памяти в память, то названия этих регистров ни о чем не говорят, но вызывая одну из трех функций инициализации в которых адрес источника всегда стоит на первом месте о таких вещах знать и не нужно. Точнее нужно, но только в момент написания этих функций.
Ответить

Вернуться в «МЯЯЯУ!»