STM32 новичку в ARM что к чему
Это я знаю. И так и делаю. Простой вопрос - как установить, используя HAL, source, destination и count для DMA. Хотя бы destination aka CPAR соответствующего канала, так как есть надежда что HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef * htim, uint32_t * pData, uint16_t Length) выполнит два из трёх желаний.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Реклама
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="dosikus",url="/forum/viewtopic.php?p=3457382#p3457382"]Например так .
[/uquote]
Никогда не понимал - на кой для каждого битового поля делать отдельное чтение-модификация-запись (LDR/ORR/STR) вместо просто записи всего слова сразу?
Без всяких калокубов и прочей хрени (STM32F429):
Как видно - даже EN вполне нормально ставится и запускается канал одновременно с программированием управляющих бит.
PS: concat(...) - макрос текстовой склейки (конкатенации) строк
Код: Выделить всё
#define DMA1_Channel_X DMA1_Channel3
DMA1_Channel_X->CCR |= DMA_CCR_MSIZE_0; // Memory size 16 bit
DMA1_Channel_X->CCR |= DMA_CCR_PSIZE_0; // Peripheral size 16 bit
DMA1_Channel_X->CCR |= DMA_CCR_PL_1; // Channel Priority level High
DMA1_Channel_X->CCR |= DMA_CCR_MINC; // Memory increment mode
DMA1_Channel_X->CCR |= DMA_CCR_CIRC; // Circular mode
DMA1_Channel_X->CCR |= DMA_CCR_DIR; // Data transfer direction Memory -> PeripheralНикогда не понимал - на кой для каждого битового поля делать отдельное чтение-модификация-запись (LDR/ORR/STR) вместо просто записи всего слова сразу?
Без всяких калокубов и прочей хрени (STM32F429):
Спойлер
Код: Выделить всё
//csl.h (Chip Support Layer)
//------------
//DMA channel assignments
#define DMAREQ_S0_SPI3_RX 0
#define DMAREQ_S0_I2C1_RX 1
#define DMAREQ_S0_TIM4_CH1 2
#define DMAREQ_S0_I2S3_EXT_RX 3
#define DMAREQ_S0_UART5_RX 4
#define DMAREQ_S0_UART8_TX 5
#define DMAREQ_S0_TIM5_CH3 6
#define DMAREQ_S0_TIM5_UP 6
#define DMAREQ_S1_TIM2_CH3 3
#define DMAREQ_S1_TIM2_UP 3
#define DMAREQ_S1_UART3_RX 4
#define DMAREQ_S1_UART7_TX 5
#define DMAREQ_S1_TIM5_CH4 6
#define DMAREQ_S1_TIM5_TRIG 6
#define DMAREQ_S1_TIM6_UP 7
#define DMAREQ_S2_SPI3_RX 0
#define DMAREQ_S2_TIM7_UP 1
#define DMAREQ_S2_I2S3_EXT_RX 2
#define DMAREQ_S2_I2C3_RX 3
#define DMAREQ_S2_UART4_RX 4
#define DMAREQ_S2_TIM3_CH4 5
#define DMAREQ_S2_TIM3_UP 5
#define DMAREQ_S2_TIM5_CH1 6
#define DMAREQ_S2_I2C2_RX 7
#define DMAREQ_S3_SPI2_RX 0
#define DMAREQ_S3_TIM4_CH2 2
#define DMAREQ_S3_I2S2_EXT_RX 3
#define DMAREQ_S3_UART3_TX 4
#define DMAREQ_S3_UART7_RX 5
#define DMAREQ_S3_TIM5_CH4 6
#define DMAREQ_S3_TIM5_TRIG 6
#define DMAREQ_S3_I2C2_RX 7
#define DMAREQ_S4_SPI2_TX 0
#define DMAREQ_S4_TIM7_UP 1
#define DMAREQ_S4_I2S2_EXT_TX 2
#define DMAREQ_S4_I2C3_TX 3
#define DMAREQ_S4_UART4_TX 4
#define DMAREQ_S4_TIM3_CH1 5
#define DMAREQ_S4_TIM3_TRIG 5
#define DMAREQ_S4_TIM5_CH2 6
#define DMAREQ_S4_UART3_TX 7
#define DMAREQ_S5_SPI3_TX 0
#define DMAREQ_S5_I2C1_RX 1
#define DMAREQ_S5_I2S3_EXT_TX 2
#define DMAREQ_S5_TIM2_CH1 3
#define DMAREQ_S5_UART2_RX 4
#define DMAREQ_S5_TIM3_CH2 5
#define DMAREQ_S5_DAC0 7
#define DMAREQ_S6_I2C1_TX 1
#define DMAREQ_S6_TIM4_UP 2
#define DMAREQ_S6_TIM2_CH2 3
#define DMAREQ_S6_TIM2_CH4 3
#define DMAREQ_S6_UART2_TX 4
#define DMAREQ_S6_UART8_RX 5
#define DMAREQ_S6_TIM5_UP 6
#define DMAREQ_S6_DAC1 7
#define DMAREQ_S7_SPI3_TX 0
#define DMAREQ_S7_I2C1_TX 1
#define DMAREQ_S7_TIM4_CH3 2
#define DMAREQ_S7_TIM2_CH4 3
#define DMAREQ_S7_TIM2_UP 3
#define DMAREQ_S7_UART5_TX 4
#define DMAREQ_S7_TIM3_CH3 5
#define DMAREQ_S7_I2C2_TX 7
#define DMAREQ_S8_ADC1 0
#define DMAREQ_S8_ADC3 2
#define DMAREQ_S8_SPI1_RX 3
#define DMAREQ_S8_SPI4_RX 4
#define DMAREQ_S8_TIM1_TRIG 6
#define DMAREQ_S9_SAI1_A 0
#define DMAREQ_S9_DCMI 1
#define DMAREQ_S9_ADC3 2
#define DMAREQ_S9_SPI4_TX 4
#define DMAREQ_S9_UART6_RX 5
#define DMAREQ_S9_TIM1_CH1 6
#define DMAREQ_S9_TIM8_UP 7
#define DMAREQ_S10_TIM8_CH1 0
#define DMAREQ_S10_TIM8_CH2 0
#define DMAREQ_S10_TIM8_CH3 0
#define DMAREQ_S10_ADC2 1
#define DMAREQ_S10_SPI1_RX 3
#define DMAREQ_S10_UART1_RX 4
#define DMAREQ_S10_UART6_RX 5
#define DMAREQ_S10_TIM1_CH2 6
//#define DMAREQ_S10_TIM8_CH1 7
#define DMAREQ_S11_SAI1_A 0
#define DMAREQ_S11_ADC2 1
#define DMAREQ_S11_SPI5_RX 2
#define DMAREQ_S11_SPI1_TX 3
#define DMAREQ_S11_SDIO 4
#define DMAREQ_S11_SPI4_RX 5
#define DMAREQ_S11_TIM1_CH1 6
#define DMAREQ_S11_TIM8_CH2 7
#define DMAREQ_S12_ADC1 0
#define DMAREQ_S12_SAI1_B 1
#define DMAREQ_S12_SPI5_TX 2
#define DMAREQ_S12_SPI4_TX 5
#define DMAREQ_S12_TIM1_CH4 6
#define DMAREQ_S12_TIM1_TRIG 6
#define DMAREQ_S12_TIM1_COM 6
#define DMAREQ_S12_TIM8_CH3 7
#define DMAREQ_S13_SAI1_B 0
#define DMAREQ_S13_SPI6_TX 1
#define DMAREQ_S13_CRYP_OUT 2
#define DMAREQ_S13_SPI1_TX 3
#define DMAREQ_S13_UART1_RX 4
#define DMAREQ_S13_TIM1_UP 6
#define DMAREQ_S13_SPI5_RX 7
#define DMAREQ_S14_TIM1_CH1 0
#define DMAREQ_S14_TIM1_CH2 0
#define DMAREQ_S14_TIM1_CH3 0
#define DMAREQ_S14_SPI6_RX 1
#define DMAREQ_S14_CRYP_IN 2
#define DMAREQ_S14_SDIO 4
#define DMAREQ_S14_UART6_TX 5
//#define DMAREQ_S14_TIM1_CH3 6
#define DMAREQ_S14_SPI5_TX 7
#define DMAREQ_S15_DCMI 1
#define DMAREQ_S15_HASH_IN 2
#define DMAREQ_S15_UART1_TX 4
#define DMAREQ_S15_UART6_TX 5
#define DMAREQ_S15_TIM8_CH4 7
#define DMAREQ_S15_TIM8_TRIG 7
#define DMAREQ_S15_TIM8_COM 7
//board.h (распределение ресурсов платы)
//---------------------------------
//Распределение DMA-stream-ов
#define nDMASTR_UART1_TX 15
#define nDMASTR_UART1_RX 10
#define nDMASTR_UART5_TX 7
#define nDMASTR_UART5_RX 0
#define nDMASTR_UART6_TX 14
#define nDMASTR_UART6_RX 9
#define nDMASTR_SPI5_TX 12
#define nDMASTR_SPI5_RX 11
#define nDMASTR_SPI1_TX 13
#define nDMASTR_SPI1_RX 8
#define nDMASTR_I2C3_TX 4
#define nDMASTR_I2C3_RX 2
#define nDMASTR_DAC 5
//драйвер аудио-потока (aout.cpp):
//---------------------------------
#define dmaU ((nDMASTR_DAC >> 3) ? &DMA2: &DMA1)
#define dmaS (&dmaU->STREAM[nDMASTR_DAC & 7])
...
dmaS->CR = 1 << DMA_CR_EN | 1 << DMA_CR_TEIE | 1 << DMA_CR_TCIE |
1 << DMA_CR_DIR | 1 << DMA_CR_DBM | DMAPRI_DAC << DMA_CR_PL |
1 << DMA_CR_MINC | 2 << DMA_CR_PSIZE | 2 << DMA_CR_MSIZE |
concat(DMAREQ_S, nDMASTR_DAC, _DAC, concat(DAC_DMASTR, nDMASTR_DAC)) <<
DMA_CR_CHSEL;PS: concat(...) - макрос текстовой склейки (конкатенации) строк
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
jcxz, а здесь все просто. Это учебный пример для чего и комменты на манипуляции с каждым битом.
Ферштейн?
Ферштейн?
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="dosikus",url="/forum/viewtopic.php?p=3457444#p3457444"]jcxz, а здесь все просто. Это учебный пример для чего и комменты на манипуляции с каждым битом.[/uquote]
Оне-ж воспримут это буквально и везде такое городить будут.
Оне-ж воспримут это буквально и везде такое городить будут.
- Сообщения: 3386
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Было бы лучше написать таким образом этот пример.dosikus писал(а):Это учебный пример для чего и комменты на манипуляции с каждым битом.
Код: Выделить всё
#define DMA1_Channel_X DMA1_Channel3
DMA1_Channel_X->CCR |= DMA_CCR_MSIZE_0 | // Memory size 16 bit
DMA_CCR_PSIZE_0 | // Peripheral size 16 bit
DMA_CCR_PL_1 | // Channel Priority level High
DMA_CCR_MINC | // Memory increment mode
DMA_CCR_CIRC | // Circular mode
DMA_CCR_DIR; // Data transfer direction Memory -> Peripheral- Реклама
Потому что это не влияет на производительность, не об этом вам думать надо. Читаемость кода в варианте Досикуса лучше.jcxz писал(а): Никогда не понимал - на кой для каждого битового поля делать отдельное чтение-модификация-запись (LDR/ORR/STR) вместо просто записи всего слова сразу?![]()
Конфигурация DMA это разовая операция. Переведите свой фокус на другое.
Последний раз редактировалось Oxford Сб сен 15, 2018 17:32:10, всего редактировалось 3 раза.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Мурик, я так и пишу, если бы ты был внимателен код что выше был выложен на казусе не мой.
Да и господа, дело то не в стиле , самое главное так никто и не понял.
http://mcu.goodboard.ru/viewtopic.php?id=31
Да и господа, дело то не в стиле , самое главное так никто и не понял.
http://mcu.goodboard.ru/viewtopic.php?id=31
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Oxford",url="/forum/viewtopic.php?p=3457482#p3457482"]Потому что это не влияет на производительность, не об этом вам думать надо. Читаемость кода в варианте Досикуса лучше.
Конфигурация DMA это разовая операция. Переведите свой фокус на другое.[/uquote]
И чем хуже читаемость: CCR = 1 << bit0 | 1 << bit1 | ...;
по сравнению с: CCR |= 1 << bit0; CCR |= 1 << bit1; ...
??
В читаемости нет никакой разницы.
А вот человек, сделавший так в одном месте и во всех остальных лепит то же самое. Даже не обращая внимание, что в регистре могут быть write-only-поля битов. Видел это многократно.
Добавлено after 1 minute 53 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3457473#p3457473"]Было бы лучше написать таким образом этот пример.[/uquote]
Я вообще-то писал что операция |= там совсем не нужна. Зачем все начинающие лепят это |= когда нужна только запись???
Добавлено after 2 minutes 54 seconds:
[uquote="dosikus",url="/forum/viewtopic.php?p=3457484#p3457484"]Да и господа, дело то не в стиле , самое главное так никто и не понял.[/uquote]
Так разъясните
Конфигурация DMA это разовая операция. Переведите свой фокус на другое.[/uquote]
И чем хуже читаемость: CCR = 1 << bit0 | 1 << bit1 | ...;
по сравнению с: CCR |= 1 << bit0; CCR |= 1 << bit1; ...
??
В читаемости нет никакой разницы.
А вот человек, сделавший так в одном месте и во всех остальных лепит то же самое. Даже не обращая внимание, что в регистре могут быть write-only-поля битов. Видел это многократно.
Добавлено after 1 minute 53 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3457473#p3457473"]Было бы лучше написать таким образом этот пример.[/uquote]
Я вообще-то писал что операция |= там совсем не нужна. Зачем все начинающие лепят это |= когда нужна только запись???
Добавлено after 2 minutes 54 seconds:
[uquote="dosikus",url="/forum/viewtopic.php?p=3457484#p3457484"]Да и господа, дело то не в стиле , самое главное так никто и не понял.[/uquote]
Так разъясните
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="jcxz",url="/forum/viewtopic.php?p=3457489#p3457489"]Зачем все начинающие лепят это |= когда нужна только запись???[/uquote]Да если бы только начинающие, у сепербизонов это тоже сплошь и рядом.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
jcxz, ко мне лучше на ты.
И так ты прицепился к записи, а то что вопрошающий даже не вник, что инит DMA и таймера напрямую , и проще и универсальней , пролетело мимо тебя .
Давайте еще здесь устроим срач, на потеху ARV.
Он уже прямо кипит, поднотавливая опус как все грызутся из-мелочей так и неудосужевшись помочь...
И так ты прицепился к записи, а то что вопрошающий даже не вник, что инит DMA и таймера напрямую , и проще и универсальней , пролетело мимо тебя .
Давайте еще здесь устроим срач, на потеху ARV.
Он уже прямо кипит, поднотавливая опус как все грызутся из-мелочей так и неудосужевшись помочь...
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="dosikus",url="/forum/viewtopic.php?p=3457524#p3457524"]И так ты прицепился к записи, а то что вопрошающий даже не вник, что инит DMA и таймера напрямую , и проще и универсальней , пролетело мимо тебя.[/uquote]
Без калокуба? А что тут обсуждать? Это же очевидная вещь.
Калокубокодеру никогда не стать программистом. Да и вообще - не создать ничего стоящего. Сможет только чужие решения тырить и кое-как костылить.
Без калокуба? А что тут обсуждать? Это же очевидная вещь.
Калокубокодеру никогда не стать программистом. Да и вообще - не создать ничего стоящего. Сможет только чужие решения тырить и кое-как костылить.
- Сообщения: 6457
- Зарегистрирован: Пт сен 13, 2013 13:11:31
На сайте апача есть проект "mynewt" -- типа операционной системы для интернета вещей. Помимо прочего, поддерживаются и STM32. Пилящие поддержку STM32 используют CubeMX. Та же фигня с микропитоном. Оба проекта не имеют аналогов и как-то с натугой верится, что их девелоперам "никогда не стать программистами".
Последний раз редактировалось a5021 Вс сен 16, 2018 01:42:15, всего редактировалось 2 раза.
- Сообщения: 2411
- Зарегистрирован: Ср фев 23, 2011 12:12:31
[uquote="jcxz",url="/forum/viewtopic.php?p=3457561#p3457561"]Калокубокодеру никогда не стать программистом. Да и вообще - не создать ничего стоящего. Сможет только чужие решения тырить и кое-как костылить.[/uquote]
Нашли друг друга... кубохейтеры... Если не хватает умений использовать достижения во благо, это скорей ваш недостаток.
И интересно, что ТЫ ЛИЧНО создал стоящего? Расскажи! Очень интересно послушать!
Или ты часть стада, которое только и повторяет за своим хозяином "калокуб" "не программист" "тырить костылить"... А сам на деле пшик? Право смешно!
Нашли друг друга... кубохейтеры... Если не хватает умений использовать достижения во благо, это скорей ваш недостаток.
И интересно, что ТЫ ЛИЧНО создал стоящего? Расскажи! Очень интересно послушать!
Или ты часть стада, которое только и повторяет за своим хозяином "калокуб" "не программист" "тырить костылить"... А сам на деле пшик? Право смешно!
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 6457
- Зарегистрирован: Пт сен 13, 2013 13:11:31
[uquote="Oxford",url="/forum/viewtopic.php?p=3457482#p3457482"]Конфигурация DMA это разовая операция.[/uquote]
Точно. Один раз записал вот так и теперь просто копирую.
Точно. Один раз записал вот так и теперь просто копирую.
Код: Выделить всё
DMA1_Channel3->CCR = (
1 * DMA_CCR_EN | // Channel enable
1 * DMA_CCR_TCIE | // Transfer complete interrupt enable
0 * DMA_CCR_HTIE | // Half Transfer interrupt enable
1 * DMA_CCR_TEIE | // Transfer error interrupt enable
0 * DMA_CCR_DIR | // Data transfer direction
0 * DMA_CCR_CIRC | // Circular mode
0 * DMA_CCR_PINC | // Peripheral increment mode
1 * DMA_CCR_MINC | // Memory increment mode
// PSIZE[1:0] bits (Peripheral size)
// 00: 8-bits
// 01: 16-bits
// 10: 32-bits
// 11: Reserved
0 * DMA_CCR_PSIZE_1 | // Bit 1
0 * DMA_CCR_PSIZE_0 | // Bit 0
// MSIZE[1:0] bits (Memory size)
// 00: 8-bits
// 01: 16-bits
// 10: 32-bits
// 11: Reserved
0 * DMA_CCR_MSIZE_0 | // Bit 0
0 * DMA_CCR_MSIZE_1 | // Bit 1
// PL[1:0] bits(Channel Priority level)
// 00: Low
// 01: Medium
// 10: High
// 11: Very high
0 * DMA_CCR_PL_0 | // Bit 0
1 * DMA_CCR_PL_1 | // Bit 1
0 * DMA_CCR_MEM2MEM // Memory to memory mode
);
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
[uquote="AndTer",url="/forum/viewtopic.php?p=3457665#p3457665"]И интересно, что ТЫ ЛИЧНО создал стоящего? Расскажи! Очень интересно послушать![/uquote]
Сказано так будто это ты родитель калокуба, продолжай не стесняйся ...

Сказано так будто это ты родитель калокуба, продолжай не стесняйся ...
- Сообщения: 2411
- Зарегистрирован: Ср фев 23, 2011 12:12:31
[uquote="dosikus",url="/forum/viewtopic.php?p=3457740#p3457740"]...[/uquote]
Я задавал вопрос не тебе, но ответ хороший = ничего не сделали своего, только критикуют!
А с кубом делают многие и делают реальные вещи. Если вам он не нравится, если не хвататет знаний и умений его освоить и использовать во благо, то просто проходите мимо.
Куб снижает уровень вхождения в стм32, если его использовать для первоначальной настройки и инициализации, это не сильно вредит коду.
Далее человек научившись мигать светодиодом с его помощью(и не только мигать, ибо большинство радиогубительских задач не требуют глубоких познаний МК, даже если речь идёт о коммерческих устройствах, а первое устройство с помощью куба можно собрать с нуля, перейдя с авр например, буквально за один день), при необходимости, при потребности, начнёт читать документацию и изучать МК глубже.
И да, досикус, ты так не ответил на вопрос, когда у тебя стала карма -2 (кстати за хамское отношение к людям использующим куб в том числе), внезапно, на следующий день она стала +14. У тебя за ночь пропали АБСОЛЮТНО все минусы. Как так получилось то? Что за волшебство?
Я задавал вопрос не тебе, но ответ хороший = ничего не сделали своего, только критикуют!
А с кубом делают многие и делают реальные вещи. Если вам он не нравится, если не хвататет знаний и умений его освоить и использовать во благо, то просто проходите мимо.
Куб снижает уровень вхождения в стм32, если его использовать для первоначальной настройки и инициализации, это не сильно вредит коду.
Далее человек научившись мигать светодиодом с его помощью(и не только мигать, ибо большинство радиогубительских задач не требуют глубоких познаний МК, даже если речь идёт о коммерческих устройствах, а первое устройство с помощью куба можно собрать с нуля, перейдя с авр например, буквально за один день), при необходимости, при потребности, начнёт читать документацию и изучать МК глубже.
И да, досикус, ты так не ответил на вопрос, когда у тебя стала карма -2 (кстати за хамское отношение к людям использующим куб в том числе), внезапно, на следующий день она стала +14. У тебя за ночь пропали АБСОЛЮТНО все минусы. Как так получилось то? Что за волшебство?
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="AndTer",url="/forum/viewtopic.php?p=3457665#p3457665"]И интересно, что ТЫ ЛИЧНО создал стоящего? Расскажи! Очень интересно послушать![/uquote]
Боюсь, что представитель стада калокубокодеров не сможет даже строчки понять.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457665#p3457665"]Или ты часть стада, которое только и повторяет за своим хозяином "калокуб" "не программист" "тырить костылить"... А сам на деле пшик? Право смешно![/uquote]
Есть мудрая поговорка: "Не мечите бисер перед ...". Я последую ей....
Добавлено after 10 minutes 11 seconds:
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]Куб снижает уровень вхождения в стм32, если его использовать для первоначальной настройки и инициализации, это не сильно вредит коду.[/uquote]
Согласен с этим - снижает уровень требований к умственным способностям юзера. И там и оставляет их на том же уровне.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]А с кубом делают многие и делают реальные вещи.[/uquote]
Конечно! Реальную моргалку лампочками.
Если посмотреть по форумам, то все они наполнены стонами калокодеров о том, что "вот нашёл такой код в нете и вставил сюда, но почему-то не работает. Помогите! месяц уже SPI/I2C/... не могу запустить...". И все такие сообщения касаются самых примитивных вещей как правило.
А вот от тех, кто читает доки и по ним делает, от тех почти нет таких примитивных вопросов. Вопросов от них гораздо меньше и по более серьёзным темам.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]Далее человек научившись мигать светодиодом с его помощью, при необходимости, при потребности, начнёт читать документацию и изучать МК глубже.[/uquote]
....это в розовых фантазиях. А на практике: пытается костылить калокуб-говнокод (или искать в нете такие же потуги других калокодеров), даже не задумываясь открыть доку, так как приучен уже кубом не напрягать извилины.
Подтверждений этому - масса в разных форумах. Да собственно эта тема - тоже яркий пример тому.
Боюсь, что представитель стада калокубокодеров не сможет даже строчки понять.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457665#p3457665"]Или ты часть стада, которое только и повторяет за своим хозяином "калокуб" "не программист" "тырить костылить"... А сам на деле пшик? Право смешно![/uquote]
Есть мудрая поговорка: "Не мечите бисер перед ...". Я последую ей....
Добавлено after 10 minutes 11 seconds:
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]Куб снижает уровень вхождения в стм32, если его использовать для первоначальной настройки и инициализации, это не сильно вредит коду.[/uquote]
Согласен с этим - снижает уровень требований к умственным способностям юзера. И там и оставляет их на том же уровне.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]А с кубом делают многие и делают реальные вещи.[/uquote]
Конечно! Реальную моргалку лампочками.
Если посмотреть по форумам, то все они наполнены стонами калокодеров о том, что "вот нашёл такой код в нете и вставил сюда, но почему-то не работает. Помогите! месяц уже SPI/I2C/... не могу запустить...". И все такие сообщения касаются самых примитивных вещей как правило.
А вот от тех, кто читает доки и по ним делает, от тех почти нет таких примитивных вопросов. Вопросов от них гораздо меньше и по более серьёзным темам.
[uquote="AndTer",url="/forum/viewtopic.php?p=3457768#p3457768"]Далее человек научившись мигать светодиодом с его помощью, при необходимости, при потребности, начнёт читать документацию и изучать МК глубже.[/uquote]
....это в розовых фантазиях. А на практике: пытается костылить калокуб-говнокод (или искать в нете такие же потуги других калокодеров), даже не задумываясь открыть доку, так как приучен уже кубом не напрягать извилины.
Подтверждений этому - масса в разных форумах. Да собственно эта тема - тоже яркий пример тому.
Последний раз редактировалось jcxz Вс сен 16, 2018 09:41:29, всего редактировалось 1 раз.
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Интересно, как люди программировали(ют) микроконтроллеры на которые никаких кубов не было, нет и не будет? В лучшем случае файл с дефайнами периферии.
рискну высказать своё мнение: на системах с явным избытком ресурсов нет никакого смысла заниматься ловлей блох в виде изучения всяких там битов и т.п. как на PC прошла эпоха программирования на ассемблере, так и на МК, похоже, это грядет. и производители это отлично понимают, создавая всякие Кубы и т.п. слои абстракций в виде библиотек, максимально абстрагированных от аппаратуры. очевидно, что вскоре вся аппаратура в МК с общирными ресурсами будет упрятана в драйвера по принципу IOCTL - открыл и пиши/читай, потом закрыл и радуйся, а как там оно внутре устроено, никого интересовать не будет. необходимость изучения периферии по даташитам пока имеет актуальность только из-за отсутствия достаточно абстрагированной модели взаимодействия с нею, но это не надолго.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
[uquote="ARV",url="/forum/viewtopic.php?p=3457783#p3457783"]рискну высказать своё мнение: на системах с явным избытком ресурсов нет никакого смысла заниматься ловлей блох в виде изучения всяких там битов[/uquote]
Это однобокий взгляд адепта софтового ногодрыга.
И вотЪ когда ты осознаешь что PC не МК , может быть тогда толк с тебя и выйдет..
Это однобокий взгляд адепта софтового ногодрыга.
И вотЪ когда ты осознаешь что PC не МК , может быть тогда толк с тебя и выйдет..


