Перейти к содержанию
    

KuAlex

Участник
  • Постов

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о KuAlex

  • День рождения 25.04.1984

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Здравствуйте. Вопрос по прерыванию готовности результата группы измерений АЦП Не могу найти данный обработчик в серии F0. Стоит задача запустить группу преобразований и отправить через DMA обработать прерывание по окончанию преобразования группы измерений. Каким образом вызвать такое прерывание если в списке векторов прерывания в библиотеке нашел только вызов оконного : ADC1_COMP_IRQn = 12, /*!< ADC1, COMP1 and COMP2 Interrupts */ Образцы работы с ADC + DMA есть для другой f10x серии, но там в библиотеке обработчик описан, а тут нет
  2. Всем спасибо за участие, проблему решил. Оказалось нужно дополнительно включить такты на управление регистрами ADC RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; Теперь все в порядке
  3. По умолчанию тактирование включено от асинхронного собственного генератора 14 МГц. Также пробовал подключать такты к шине AHB/2, эффект точно такой же. ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2; Проблема в том, что не записываются данные в регистры ADC после выполнения строк кода. Ни в режиме симулятора, ни в дебаге железа. ADC1->CR |= ADC_CR_ADEN; ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2; Проверял пути к адресам flash, начало ADC1 - 0x40012400. Соответствует документации. Битовые маски тоже годные. Регистры портов и тактирования записываются корректно. Индикация работает, при записи в переменную "с" константы, она выводится. Подозреваю проблема с настройками библиотек. Нужно ли их настраивать, если да, то каким образом ? Прикрепил проект полностью prj_stm32f05.zip
  4. Добрый день. У меня проблема с использованием adc, микросхема - STM32F050F4, измерение не происходит. В KEIL могу выбрать для ADC только регистр CCR (ADC->CCR) зато для ADC1 доступны регистры все // Включить тактирование порта B RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // Вывод 1 на аналоговый вход GPIOB->MODER |= GPIO_MODER_MODER1; // Настройк ADC ADC1->CR |= ADC_CR_ADEN; ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2; ADC1->CHSELR |= ADC_CHSELR_CHSEL9; И при отладке в железе видно, что регистры не записываются в нужные значения // Главный цикл int main(void) { SysTick_Config(48000); while(1) { ADC1->CR |= ADC_CR_ADSTART; i=100; while(i); c=((ADC1->DR)>8); f[2]=c/100%10; f[1]=c/10%10; f[0]=c%10; } } //Обработчик прерывания системного таймера - индикация void SysTick_Handler(void) { if(i)i--; c_i++; if(c_i==3) c_i=0; GPIOA->BSRR = 0xffff0000; // сброс GPIOA->BSRR = ((mask_led[f[c_i]])&0xff) | mask_ind[c_i]; return; } Проясните пожалуйста: Что значит ADC1 и чем оно отличается от ADC ? Каким образом мне записывать значения в регистры, так, чтоб они отображались и работали?
  5. Дело в том что проект не стартовал совсем, в нулевом адресе. Галочка не помогла.. С другого проекта подглядел, здесь помогло. Установил параметр SARMCM3.DLL ->> "-REMAP" во вкладке Debug. Ошибки все равно идут, но симулирует, правда периферию показывает не так подробно как 32F100 и пользы не приносит. Что бы это значило? И еще вопрос, есть шанс прошить F0 при помощи st-link установленного vlDiscovery или сразу заказывать программатор вместе с МК?
  6. Не могу запустить проект в симуляторе - *** error 65: access violation at 0x0000000C : no 'read' permission Подскажите куда копать? Пробовал с stm32f100 debug c помощью st-link проходило успешно, вот только меню периферии существенно отличалось - можно было наблюдать подробную информацию о состоянии портов, настройках и частотах. Здесь же голые регистры показаны. Этот момент от чего зависит?
×
×
  • Создать...