Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Ответить

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

Чт июл 20, 2017 21:21:14

ЗочОт тебе, любишь своим носом в чужом белье поковыряться. :)))
Ну давай уже что нибудь по теме, расскажи как у тебя прогресс в регрессе.
Ну а так... Кто кодил микрочипы, тот в цирке не смеётся. Отсутствие выбора средств разработки для пиков, говорит уже о многом. Ну разве что не тебе.

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

Чт июл 20, 2017 21:36:37

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

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

Чт июл 20, 2017 21:45:40

Zhuk72 писал(а):Желающие получить минимум ответов на свои вопросы выбирают Баском.
Непохоже чтобы ответов было минимум viewtopic.php?f=57&t=6408

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

Чт июл 20, 2017 21:47:42

ЗочОт тебе, любишь своим носом в чужом белье поковыряться. :)))

viewtopic.php?f=62&t=105290&p=3147836#p3147836
У тебя уже полон рот, чего тебе давать… прожуй хоть это!!! :)))

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

Чт июл 20, 2017 21:51:09

Непохоже чтобы ответов было минимум viewtopic.php?f=57&t=6408
Речь шла о ПИКах и отсутствии альтернативы МПЛаб.

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

Чт июл 20, 2017 21:51:32

ешкин кот, натолкнули на мысль, можно ж еще мигать DMA на STM32.
Применить можно, например в машине, у кого нет охранной сигнализации, будет имитация. :)

Я даже быстренько набросал прогу:
Спойлер
Код:
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 частенько выражают свое недовольство касательно подобного шаблонного кода, типа С++ на мк непозволительная роскошь, хотя там внутри то же самое, что они написали бы руками на С :)

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

Чт июл 20, 2017 22:07:46

... типа С++ на мк непозволительная роскошь, хотя там внутри то же самое, что они написали бы руками на С :)

Ну, для справедливого суда надо то же самое в CMSIS написать, а потом сравнить полученный асм.

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

Чт июл 20, 2017 22:09:13

Ну а так... Кто кодил микрочипы, тот в цирке не смеётся.

Неее... тут невозможно удержаться :music:
scorpi_0n писал(а):Так надо не учить а понимать. А страшного ничего там нет.

ответ ему:
Вы месяц назад задавались вопросом "с чего начать изучение МК?". Вы либо феномен, либо вам следует пойти колотить понты куда нибудь в другое место.


scorpi_0n писал(а):Просто не надо обрастать комплексами. Не святые горшки лепят. Хотите сказать что МК не для среднего ума? А с битами и регистрами в любом МК придётся разбираться. Дело в терпении и желании.

ответ ему:
Вот когда разберетесь, тогда и будете рассуждать о том, страшно это или не страшно. Сейчас же вы даете ответ, не имея ни малейшего представления о вопросе.


scorpi_0n писал(а):Не совсем так. TFT дисплей к STM8 прицепил. Скорость заливки экрана одним цветом 19 миллисек. С частотомером на STM32 почти разобрался. С SPI никаких трудностей не возникло. Поэтому не понятно о чём речь когда говорят о незадокументированных нюансах. Делал всё по референсу.

До сих пор живот болит… :))) ну ты чудило!!! :love: А пузыри надуваешь справно… хомячки клюют? Или уже не?! :))

Чуть не забыл... viewtopic.php?f=59&t=123781&p=2571115#p2571115

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

Чт июл 20, 2017 22:34:19

АРМы идут! Можешь сразу с окна выбрасываться. :)))
И не ищи черную кошку в тёмной комнате, она в другом доме живёт. :)))

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

Чт июл 20, 2017 22:43:54

Ну, для справедливого суда надо то же самое в CMSIS написать, а потом сравнить полученный асм.

Там внутри все на регистрах и написано. Например, при инициализации DMA идет запись адресов в CPAR и CMAR, размера в CNDTR и еще 5 параметров пакуются в channel()->CCR, где channel это функция возвращающая один из кастованных параметров шаблона, но если передать эти 5 параметров как один и явно прописать DMA1_Channel3->CCR, то размер не поменяется, что не удивительно, ведь там одни константы. Распишешь ты инициализацию этих регистров в 4-5 строк и сгенерится тот же самый код, но наглядность упадет и появится больше возможностей совершить ошибку. Например, можешь с ходу сказать если DMA будет копировать из памяти в память, то источником будет CPAR или CMAR? Если же оформить все в виде Сишных функций, то придется передавать 1-2 лишних параметра ничего на этом не выиграв.

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

Чт июл 20, 2017 22:58:47

На меге можно сделать по нормальному на UART, но народ предпочитает ногодрыг. :)))


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

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

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

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

Чт июл 20, 2017 23:01:41

...который моргает 3 раза, каждый последующий период...

Не совсем понял мысль твоего алгоритма… мигает в периоде 3 раза? Пояснить можешь?

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

Чт июл 20, 2017 23:05:56

Таймер каждые 200ms пинает DMA, тот берет из массива данные и выводит в порт, при этом меняется только один пин со светодиодом, который моргает 3 раза, каждый последующий период длиннее предыдущего и потом все зацикливается


Тут основной плюс, что можно формировать очень короткие импульсы и высокие частоты. Я разбирал код для Arduino Due, там тоже использовали DMA для получения импульса в десяток наносекунд. Это был стенд для проверки китайских IGBT транзисторов, полезная штука.

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

Чт июл 20, 2017 23:19:06

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

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

Чушь все это. И никому такое больше не говори.
На стм32 ни ногодрыг не нужен, ни юарт. Все остальное сказки и страшилки для непосвященых, которые на стм32 обнуляются на раз, вплоть до самоподстройки и самокалибровки.

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

Чт июл 20, 2017 23:39:12

Не совсем понял мысль твоего алгоритма… мигает в периоде 3 раза? Пояснить можешь?

В массиве фактически находятся 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, т.е. 200ms светодиод не горит, 200 горит, 400 не горит, 400 горит, 600 не горит, 600 горит и зацикливается. Исключительно для проверки, естественно на одном канале DMA и таймере можно зажигать 16 светодиодов как тебе вздумается. Допустим, имея таблицу на 256 значений можно получить 16 аппаратных 8-ми битных шимов.

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

Ну выставил ты бит MEM2MEM, а копируем из памяти в память, из CPAR в CMAR, но это далеко не очевидно.

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

Чт июл 20, 2017 23:57:15

Чушь все это. И никому такое больше не говори.

Членистоногий, раз не меняешь свой тон общения - продолжу… :P
ответ на совет знающего scorpi_0n :
А какое отношение вами написанное имеет к управлению комплементарными выходами канала сравнения таймера? Вы даже в тему ухитряетесь не попасть с ответом. С тем, что у вас заработали чужие примеры, я вас поздравляю, но этого мало, чтобы с апломбом вещать "Так надо не учить а понимать. А страшного ничего там нет."


scorpi_0n писал(а):А что с комлементарными не так? Если знаете то поделитесь информацией. Если не знаете пусть кто-то другой скажет что с ними не так.

ответ:
Вот разберетесь и расскажете. А до этого момента ваше "авторитетное мнение" не оставляет сомнений в том, что это колочение понтов и ничего больше.


scorpi_0n писал(а):Я спросил что с комплементарными не так. Нет ответа? Не засоряйте тему.
Если что-то не так с SPI то и скажите что не так. А то вроде как всё не так а внятно никто ничего сказать не может.

ответ:
Право засорять тему своим "авторитетным мнением" принадлежит только вам? Сделайте милость, умерьте свое ЧСВ и не указывайте другим, что им делать... Вы даже не поняли, о чем идет речь, но при этом заявили, что "страшного ничего там нет". Тут бы самое время спросить -- а "там" -- это где, но после такого подхода я вообще испытываю сильнейшие сомнения, что есть смысл продолжать разговор.

«Гуру» (scorpi_0n) по-детски тупанул, так как обычно при таких раскладах он ныряет в норку, а тут разговорился и вляпался в очередной раз в свою лепёшку… :)))

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

Пт июл 21, 2017 00:00:19

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

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

Пт июл 21, 2017 00:00:38

В массиве фактически находятся 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, т.е. 200ms светодиод не горит, 200 горит, 400 не горит, 400 горит, 600 не горит, 600 горит и зацикливается. Исключительно для проверки, естественно на одном канале DMA и таймере можно зажигать 16 светодиодов как тебе вздумается. Допустим, имея таблицу на 256 значений можно получить 16 аппаратных 8-ми битных шимов.

Теперь понял…

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

Пт июл 21, 2017 00:03:15

АСУ, тебя капитально заклинило! Пойди помойся и одень чистое бельё - АРМы идут! :)))

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

Пт июл 21, 2017 00:36:15

А что там должно быть очевидно? Как настроил дма, такой результат и получил. Это и будет очевидностью.
Из названий регистров CPAR в CMAR можно понять откуда куда копируется если выбран режим MemToPeriph или PeriphToMem, но когда копируется из памяти в память, то названия этих регистров ни о чем не говорят, но вызывая одну из трех функций инициализации в которых адрес источника всегда стоит на первом месте о таких вещах знать и не нужно. Точнее нужно, но только в момент написания этих функций.
Ответить