0
Красиво! Еще бы фото внутренностей посмотреть…
  • avatar
  • sva_omsk
  • 22 декабря 2017, 08:22
0
Реализации задержек STM32

Пользуюсь этим методом:
// функция задержки в миллисекундах
 
void _delay_ms (uint16_t delay)
{
    TIM6->PSC = F_TIMER/1000-1;             // установка предделителя таймера (период 1 ms)
    TIM6->ARR = delay;                      // количество периодов
    TIM6->EGR = TIM_EGR_UG;                 // генерируем событие обновления
    TIM6->CR1 = TIM_CR1_CEN|TIM_CR1_OPM;    // включаем режим одного импульса
    while ((TIM6->CR1 & TIM_CR1_CEN)!=0);   // ждем пока тикает
}

Проще не придумать, так зачем усложнять? Правда применял на F1xx и F4xx, но думаю и на нулевой серии тоже пойдет.
  • avatar
  • sva_omsk
  • 15 февраля 2016, 07:50
0
Мой генератор — это всего лишь любительская поделка, я не питаю никаких иллюзий по отношению к нему. О метрологии говорить еще слишком рано. И даже несмотря на то, что удалось получить модулированный сигнал частотой больше 1 МГц (фото на форуме есть), я не уверен, смогу ли этим управлять. Есть много проблем, включая джжиттер.
  • avatar
  • sva_omsk
  • 09 декабря 2015, 06:34
0
Кстати, в той же схеме датчика уровня у вас неправильно проставлены мощности резисторов. Там это без разницы (я даже не поленился посмотреть потребление пика), но когда-нибудь можете проколоться на этом.
  • avatar
  • sva_omsk
  • 05 декабря 2015, 22:21
0
На просторах РУНЕТа можно много найти инфы по изучению STM32
В связи с чем четвертая рубрика на вашем сайте явно лишняя. Зря потратите время. Остальные рубрики очень даже интересны. Я так мельком пробежался по статьям, сразу появились пожелания. Вот например датчик уровня… Только начал читать и… опа, с механикой разобрались. Как? Когда? Где картинки? Это ж самое интересное. Статьи с картинками читать гораздо приятней. Ну это я так, придираюсь. Дело ваше конечно.
P.S. Коммент в коде улыбнул
небольшая зайдержка
  • avatar
  • sva_omsk
  • 05 декабря 2015, 21:26
0
Принимает и обрабатывает только 2 команды: BIAS, GAIN. Это прямое управление цифровыми потенциометрами. Исправлю наиболее серьезные недостатки интерфейса и потом буду ей заниматься.
  • avatar
  • sva_omsk
  • 05 декабря 2015, 20:15
+2
Не интересно. Я знаю, что такое микроменю, использовал уже. В данном случае применять его считаю нецелесообразно. Спорить не хочу, это мое мнение.
Программа и так модульная, но модули несколько другие. И это не говорит о том, что это неправильно. Главное, чтобы было понятно и отслеживалась логика программы. А этого, как мне кажется, я добился.
  • avatar
  • sva_omsk
  • 05 декабря 2015, 08:38
+1
Я думаю вопрос был именно про тормозную отрисовку. В первой части я действительно по каждому чиху перерисовывал значительные области. Потребовалось переписать почти весь код, чтобы получить более-менее приемлемый результат.
  • avatar
  • sva_omsk
  • 05 декабря 2015, 00:17
0
блин, кат не поставил. момент… Кстати видео работает?
  • avatar
  • sva_omsk
  • 04 декабря 2015, 21:15
0
Сначала ссылку неправильную вставил. Но через минуту поправил. Как сейчас?
  • avatar
  • sva_omsk
  • 04 декабря 2015, 21:07
0
Добавил во вложения файлы своих касс (Е12) и кассы sasha_tvo (Е24)
  • avatar
  • sva_omsk
  • 02 декабря 2015, 07:37
+2
Сделал себе еще 3 кассы такого типа, на этот раз красивые)




Подробности сборки и кучу фоток добавил в статью.
  • avatar
  • sva_omsk
  • 01 декабря 2015, 18:50
0
В первой версии хочу ограничиться умножением и сложением амплитуды сигналов. Формулы уже есть:

Честно говоря очень сильно сомневаюсь, что смогу вытянуть частоту модулированного сигнала хотя бы до 1 МГц. Внешней модуляции вобще нет. Есть вход синхронизации, будет использоваться, например, для запуска пакета. Там логические уровни.
Из внешних интерфейсов пока только UART. Дело в том, что я планировал серию устройств: генератор, БП, и третье, соединяющееся с обоими как раз по UART и управляющее ими. Это третье имело бы уже стандартный интерфейс: USB или Ethernet и имело бы ПО для снятия графиков, например АХ и АЧХ. Один не потяну)
0
Файлы-то не добавил вчера. Обновил.
0
Интересно, оправдался ли переход DiHalt'a вконтактик в поиске ЦА? Как по мне, так вести тематический ресурс (с уже накопленным нехилым багажом) на «чужой» территории — весьма плохая затея. Один раз заглянул, очень не понравилось. Больше туда не тянет. А здесь все увядает. Так стоило ли?!
0
Заглянул в ЧиД… Сказать удивился — значит ничего не сказать! Это ж полный П...!!!
0
Ради интереса заглянул на сайт ближайшего магазина, посмотреть цену на miniUSB. Вы ничего не напутали с «75 р/шт»?
0
Я считаю, что это один из тех проектов, которые можно назвать проектами всей жизни. В том смысле, что грамотное проектирование, продвижение и поддержка могут вполне себе неплохо обеспечить эту самую жизнь. Тема «умных» домой набирает популярность, это очевидно. Вот и надо это использовать. Так что так держать! Успехов вам в развитии!
P.S. Никогда не докапываюсь до ошибок на форумах и блогах, но на сайте того, что продвигаете, крайне желательно все проверять трижды. В разделе «Список доступных модулей» исправьте «Эмуляция нажатий мультимедиа клавишь».
0
USART_InitTypeDef usart;
usart.USART_BaudRate            = 9600;
usart.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;
usart.USART_WordLength          = USART_WordLength_8b;
usart.USART_Parity              = USART_Parity_No ;
usart.USART_StopBits            = USART_StopBits_1;
usart.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(USART1, &usart);
USART_Cmd(USART1, ENABLE); 
Я не против регистров, пожалуй даже за, но не в инициализации периферии. Наглядная инициализация сильно уменьшает количество проблем в будущем.
0
Свое всегда роднее, и это понятно. Прочитав обе «конкурирующие» темы, больше понравился способ Mihail'a: во-первых, возможностью групповой настройки выводов; во-вторых, процесс написания кода удобней/быстрей. Один раз набрал GPIO_MODE_..., выскочила подсказка, выбрал нужное. В вашем случае для инициализации одного вывода после названия функции набираем GPIO_MODE_..., GPIO_TYPE_..., GPIO_PULL_..., GPIO_SPEED_..., GPIO_ALTFUNC_… Представил процесс настройки сотни ног МК, и как-то грустно стало. Копипаст конечно поможет, но все же.
На мой взгляд, недостаток обоих способов — это работа только с портами. А если нужна другая периферия? Использовать регистры? SPL? Во втором случае велосипеды не нужны. Да и в первом можно обойтись. Для проектов на STM у меня есть сопутствующие проекты MicroXplorer (ныне куб), где визуально сразу видно, как настроена каждая нога, и это удобней, чем смотреть на портянки GPIO_INIT. Мне, например, лениво настраивать тот же UART через регистры. Подключаю SPL, функции передачи/приема данных свои, на регистрах. Соответственно, порты настраиваю через SPL. Но в программе использую BSRR. Получается, оба велосипеда как бы особо и не нужны. Но если к ним добавить инициализацию хотя бы UART, TIM, SPI, I2C, ADC, то это будет очень неплохая альтернатива SPL. По-крайней мере я бы задумался об ее использовании, т.к. чаще всего нужно вышеперечисленное.
Это все так, рассуждения. Как говорится, чисто мое мнение)