Jump to content
admin

Юмор

Recommended Posts

Некоторым нет. Впрочем они в теме про политику уже порядком неинтересны

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

При разработке устройств с батарейным питанием важно выбирать компоненты не просто с малым потреблением, но и с предельно малым током покоя. При этом следует обратить внимание на линейку nanoPower производства компании Maxim Integrated. В статье рассмотрено их применение на примере системы датчиков беспроводной оконной сигнализации.

Подробнее

15.09.2019 в 05:14, Soundoverlord сказал:

И че? Меня тоже находят в капусте 7 мая ...

Ну вот,  наконец то и пригодилась таки квашеная капуста.

:)

С уважением, Сергей

Share this post


Link to post
Share on other sites
                     

Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino

Платы Nucleo и платы расширения X-NUCLEO от STMicroelectronics можно интегрировать в платформу Arduino с помощью библиотеки STM32duino. Связка плат Nucleo и платформы Arduino, и наличие готовых библиотек – представляет удобный инструмент для создания прототипов и конечных приложений в условиях ограниченного времени. Статья содержит пошаговые инструкции по установке библиотек и запуску примеров для Nucleo.

Подробнее...

2 часа назад, Sukhanov сказал:

Ну вот,  наконец то и пригодилась таки квашеная капуста.

Не тот масштаб. Я на грядке отдыхаю. Все-таки свой огород - могу себе позволить

Share this post


Link to post
Share on other sites
15.09.2019 в 05:14, Soundoverlord сказал:

Меня тоже находят в капусте 7 мая

 

46 минут назад, Soundoverlord сказал:

Все-таки свой огород - могу себе позволить

На своём огороде позволительно всё....:pilot:

Павел,    я хоть и не :buba: Мичурин ни разу, но 7 мая  рановато даже для самой ранней капусты!!:new_russian:

:)

С уважением, Сергей

Share this post


Link to post
Share on other sites

3886 за 90 000р. :unsure: Что происходит!? :blink:

Разумеется, не реклама - я правда в афуе! В полном!

Скриншот 16-09-2019 140455.jpg

Скриншот 16-09-2019 140711.jpg

Edited by Alex-L

Share this post


Link to post
Share on other sites

Ну так, за серебро и навесной монтаж :)

Share this post


Link to post
Share on other sites

:) Живут же люди. Только не завидую. До чего техника дошла, нашу маму и тут и там передают. :D

Edited by Владислав2

Share this post


Link to post
Share on other sites

LM3886(с совковыми радиаторами) + топовые детали + серебро + Курский СОЛОВЕЙ = 90000руб

Самое дорогое в этом наборе хвалебная трель  курского соловья :D

Share this post


Link to post
Share on other sites

Самая фишка здесь - внешний силовик для исключения фона и возможных помех.

Share this post


Link to post
Share on other sites

В остальных объявлениях женские тряпки. На них, блондинок наверное, направлено и это.:)

Share this post


Link to post
Share on other sites
14.09.2019 в 21:31, MiSol62 сказал:

Жена с получки купила бутылку водки и говорит мужу:

-Видал?! До 23 февраля не получишь...

Муж, не долго думая, снимает треники, показывает своё хозяйство и говорит:

-Видала?!!! До 8 марта не поимеешь...

...то жесткое чувство, когда анекдот перекрутили и он утратил ценность и смехотворную жилку...

Оригинал:

Жена ставит бутылку коньяка в бар и говорит мужу: — видел? будет стоять до 23 февраля! муж снимает штаны: — видела? будет лежать до 8 марта! ))).

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • А почему бы не ответить ему? За геноцид своего народа, к примеру?
    • Добрый день, уважаемые форумчане. Столкнулся со странной проблемой в работе связки ADC-DMA В проекте используется 2 канала DMA1. Канал 1 для циклического чтения регулярных регистров ADC И канал 4 для вывода буфера в USART. (После добавления этого канала в работу и начались чудеса ADC по преобразует сигналы и дергает DMA, который последовательно раскладывает значения в буфер uint16_t signal[6] Все работало длительное время пока я не решил задействовать DMA Для вывода в USART. Например: ADC1- Канал1 - записывался в нулевой элемент массива signal[ 0 ] ADC1- Канал2 - записывался в первый элемент массива signal[ 1 ] ADC1- Канал3 - записывался во второй элемент массива signal[ 2 ] После вывода буфера по каналу 4, на канале 1 происходит смещение индекса массива и данные от ADC начинают записываться  по другим адресам. Например: ADC1- Канал1 - записывался во второй элемент массива signal[ 2 ] ADC1- Канал2 - записывался в третий элемент массива signal[ 3 ] ADC1- Канал3 - записывался во четвертый элемент массива signal[ 4 ] Каким образом DMA->Канал4 может вносить проблемы на работу DMA->Канал1? Ниже привожу инит и вывод  Инициализация и запуск циклического считывания значений в массив  arrSignal[] void Init_ADC_DMA(void) { uint32_t pin; // Включаем тактирование GPIOA, AFIO, ADC1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN | RCC_APB2ENR_ADC1EN; RCC->CFGR |= RCC_CFGR_ADCPRE_DIV8; //Предделитель АЦП 72/6 = 12 МГц // Очистим настройки пинов. Нулевое значение соответствует Input Analog GPIOA->CRL &= ~( GPIO_CRL_CNF0 | GPIO_CRL_MODE0 | GPIO_CRL_CNF1 | GPIO_CRL_MODE1 | GPIO_CRL_CNF5 | GPIO_CRL_MODE5 | GPIO_CRL_CNF6 | GPIO_CRL_MODE6 | GPIO_CRL_CNF7 | GPIO_CRL_MODE7 ); // Настройка DMA1 RCC->AHBENR |= RCC_AHBENR_DMA1EN; // Включаем тактирование DMA1 // Deinit DMA1 Channel1 DMA1_Channel1->CCR &= ~DMA_CCR1_EN; // Отключаем DMA1 CH1 //DMA1_Channel1->CCR = 0; // Reset DMA1 Channel1 control register DMA1->IFCR |= DMA_ISR_GIF1 | DMA_ISR_TCIF1 | DMA_ISR_HTIF1 | DMA_ISR_TEIF1; // Reset interrupt pending bits for DMA1 Channel1 // Настраиваем DMA DMA1_Channel1->CNDTR = ADC_COUNT; // Количество передаваемых данных DMA1_Channel1->CPAR = (uint32_t) &(ADC1->DR );// Адрес перифирии DMA1_Channel1->CMAR = (uint32_t) arrSignal; // Адрес памяти DMA1_Channel1->CCR |= DMA_CCR1_MINC // Инкремент памяти | DMA_CCR1_PSIZE_0 // Режим периферии 16 бит | DMA_CCR1_MSIZE_0 // Режим памяти 16 бит | DMA_CCR1_PL_1 // Channel Priority level hight | DMA_CCR1_CIRC // Circular mode | DMA_CCR1_TEIE; // Transfer error interrupt enable DMA1_Channel1->CCR |= DMA_CCR1_EN; // Включаем DMA1 Channel3 // Очистим настройки ADC1 ADC1->CR1 = 0; ADC1->CR2 = 0; ADC1->SMPR2 = 0; ADC1->SQR1 = 0; ADC1->SQR2 = 0; ADC1->SQR3 = 0; // Настраиваем ADC1 ADC1->CR1 |= ADC_CR1_SCAN; // Scan mode ADC1->CR2 |= ADC_CR2_CONT; // Continuous Conversion ADC1->CR2 |= ADC_CR2_DMA; // DMA mode ADC1->CR2 |= ADC_CR2_TSVREFE; // Temperature Sensor and VREFINT Enable ADC1->CR2 &= ~ADC_CR2_ALIGN; // Data Alignment ADC1->SQR1 |= ((uint32_t)(ADC_COUNT - 1) << 20); // Сканируем 6 каналов (6-1 = 5) // Настройка семплирования. Номер канала совпадает с номером пина ADC1->SMPR2 |= ADC_SMPR2_SMP0; // Channel 0 Sample time selection 111: 239.5 cycles ADC1->SMPR2 |= ADC_SMPR2_SMP1; // Channel 1 Sample time selection 111: 239.5 cycles ADC1->SMPR2 |= ADC_SMPR2_SMP5; // Channel 2 Sample time selection 111: 239.5 cycles ADC1->SMPR2 |= ADC_SMPR2_SMP6; // Channel 3 Sample time selection 111: 239.5 cycles ADC1->SMPR2 |= ADC_SMPR2_SMP7; // Channel 4 Sample time selection 111: 239.5 cycles ADC1->SMPR1 |= ADC_SMPR1_SMP16; // Channel 5 Sample time selection 111: 239.5 cycles // Настройка пинов pin = 0x00; ADC1->SQR3 |= (pin << (5 * 0)); // Pin0 pin = 0x01; ADC1->SQR3 |= (pin << (5 * 1)); // Pin1 pin = 0x06; ADC1->SQR3 |= (pin << (5 * 2)); // Pin5 pin = 0x07; ADC1->SQR3 |= (pin << (5 * 3)); // Pin6 pin = 0x05; ADC1->SQR3 |= (pin << (5 * 4)); // Pin7 pin = 0x10; ADC1->SQR3 |= (pin << (5 * 5)); // Pin16 - Температурный сенсор ADC1->CR2 |= ADC_CR2_ADON; // A/D Converter ON / OFF // Обнуляем калибровку ADC1->CR2 |= ADC_CR2_RSTCAL; while (ADC1->CR2 & ADC_CR2_RSTCAL); //запускаем калибровку и ждем ее завершение ADC1->CR2 |= ADC_CR2_CAL; while (ADC1->CR2 & ADC_CR2_CAL); ADC1->CR2 |= ADC_CR2_EXTTRIG; //ADC_CR2_SWSTART; ADC1->CR2 |= ADC_CR2_DMA; // DMA mode }   Вывод буфера в usart  //################################################################## // function Передача буфера в USART1 по DMA1 Ch4 // argument buf - указатель на буфер char* // len - длина буфера // return void //################################################################## void DMA1Ch4_SendBuf8(const char* buf, uint32_t len) { // Deinit DMA1 Channel4 DMA1_Channel4->CCR &= ~DMA_CCR4_EN; // Отключаем DMA1 CH2 //DMA1_Channel4->CCR = 0; // Reset DMA1 Channel4 control register DMA1->IFCR |= DMA_ISR_GIF4 | DMA_ISR_TCIF4 | DMA_ISR_HTIF4 | DMA_ISR_TEIF4; // Reset interrupt pending bits for DMA1 Channel4 // Настраиваем DMA1 Channel4 DMA1_Channel4->CNDTR = len; // Количество передаваемых данных DMA1_Channel4->CPAR = (uint32_t) &(USART1->DR); // Адрес перифирии DMA1_Channel4->CMAR = (uint32_t) buf; // Адрес памяти DMA1_Channel4->CCR |= DMA_CCR4_MINC // Инкремент памяти //| DMA_CCR4_PL_0 // Channel Priority level Medium | DMA_CCR4_DIR //Data transfer direction. 0 - from peripheria 1 - from memory | DMA_CCR4_TCIE; // Transfer complete interrupt enable //DMA1_Channel4->CCR |= DMA_CCR4_TEIE; // Transfer error interrupt enable DMA1_Channel4->CCR |= DMA_CCR4_EN; // Включаем DMA1 Channel5 }   По окончании передачи формируется прерывание в котором просто отключаем DMA1->Channel4 //################################################################## //function Прерывание по окончании передачи по DMA CH4 # //argument none # //return void # //################################################################## void DMA1_Channel4_IRQHandler(void) { if ((DMA1->ISR & DMA_ISR_TCIF4)) { // Transfer Complete flag DMA1_Channel4->CCR &= ~DMA_CCR4_EN; // Отключаем DMA. DMA1->IFCR |= DMA_IFCR_CTCIF4; // Channel4 Transfer Complete clear usart.Status_Tx = Tx_None; xSemaphoreGiveFromISR(mtxUsart, 0); } } Есть у кого мысли в чем может быть проблема? Второй день поисков - не дает результата. Понимаю, что можно обойти путем пересинхронизации ADC-DMA после каждого вызова отправки буфера по 4 каналу ДМА. Но это костыль получается.
    • @Beliy_voron @Владимир Белов Это ЕГЭ 
    • @Beliy_voron  Дураков не сеют, не жнут - сами родятся.
×
×
  • Create New...