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

strifonoff

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные strifonoff

  1. Железки самой к меня пока нет, поэтому приходится доверять симулятору IAR.

    Но в нём прерывания не срабатывают. Выкинул вообще всё, оставил тупо:

    #include "stm32f10x.h"
    #include "stm32f10x_conf.h"
    
    unsigned char _timer;
    void TIM4_Init(void);
    
    int main()
    {
      _timer = 0;
      SystemInit();
      TIM4_Init();
      while(1){}
    }
    
    void TIM4_Init(void)
    {
      TIM_TimeBaseInitTypeDef TIMER_InitStructure;
      NVIC_InitTypeDef NVIC_InitStructure;
    
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
    
      TIM_TimeBaseStructInit(&TIMER_InitStructure);
      TIMER_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
      TIMER_InitStructure.TIM_Prescaler = 8000;
      TIMER_InitStructure.TIM_Period = 500;
      TIM_TimeBaseInit(TIM4, &TIMER_InitStructure);
      TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
      TIM_Cmd(TIM4, ENABLE);
    
      NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
      NVIC_Init(&NVIC_InitStructure);
    }
    
    void TIM4_IRQHandler(void)
    {
      if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)
        {
          _timer = (250-_timer) ? _timer+1 : 0;
          TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
        }
    }

    И нет прерываний... Это глюки самого IAR или что?

  2. В инете полно примеров... Только эти примеры поймёт только тот кто их писал.

    DMA сам остановится и перестанет складывать отсчеты в буфер. А как это сделать? Скиньтие плз хоть ссылку на пример какой-нибудь.

  3. так я вроде cmsis и использую, не?

    Про DMA, точнее про прерывание можно поподробнее?

    с таймерами я вроде разобрался.

    Вопрос в запуске и останове ШИМ и АЦП. Если делать по прерыванию, то выглядит просто и понятно, осталось только понять как вызвать прерывание.

    Если в память не влезет, то впихну какую-то математику в 250мсекундное окно.

    В гугле не забанили, но там либо совсем непонятно, либо мигание светодиодом.

  4. Запутался в инициализациях. Прошу помощи.

    Стоит задача: измерить реакцию объекта на меандр. 
    Процесс №1: запустить ШИМ, запустить АЦП и максимально быстро опросить вход, получив 1000 значений - записать их в массив, выключить ШИМ и АЦП.

    Процесс №2: запускать процесс №1 каждые 250 миллисекунд 100 раз. Получаем 100 массивов по 1000 значений.

    Процесс №3: запускать процесс №2 каждый час, после выполнения процесса №2 произвести какие-то вычисления, скинуть всё по УАРТ и уснуть до следующего выполнения.

    Накидал рыбу (посмотрите инициализации). 

    Запутался с тем, как запускать и отключать ШИМ и АЦП.

    main.c

    В симуляторе IAR зависает на инициализации АЦП. Конкретно в строке while(ADC_GetResetCalibrationStatus(ADC1)){};

  5. 22 минуты назад, finn32 сказал:

    Изменяет. Кт815/817 

    А пропаять сразу три не вариант?. Шесть секунд.

    Эхх... 816-ых кучка лежит. Ну ладно, найду. Пропаяно там всё хорошо, возможно отвалилась нога в районе корпуса транзистора (или внутри).

     

    25 минут назад, Andrey 69 сказал:

    Интересный пост. Работала платка вообще?

    Работала и вполне успешно. Переделывал корпус немного, всё снимал, но от радиаторов транзисторы не откручивал.

    Меня больше интересует в том ли направлении я думаю. Что бы бездумно не паять детали туда-сюда.

  6. Здравствуйте!

    Возникла у меня странная ситуация с одной из плат (всего их 4 одинаковых). Если плату покачать, то начинает дико расти ток покоя, такое чувство, что что-то отвалилось. Может ли обрыв VT9 (по схеме из первого поста) влиять на это? И какая нога у него скорее всего оторвалась? И напомните, пожалуйста, (а то, если честно, лень перелистывать всю тему) на какой из отечественных его можно поменять. ЕМНИП возможна замена на КТ816...

    Спасибо.

  7. Не заземляйте корпус усилителя (и его трансформатора) в розетку, даже если там нормальный контур заземления.

    Все что нужно - это экранированные сигнальные провода от входных разъемов до платы усилителя. 

     

  8. Послать его на три буквы, а будет выпендриваться - пригрозить расправой (не при свидетелях конечно). Я такого была повидал много, нужно сразу ставить таких на место. Хоть начальник он, хоть нет.

    А если начнётся телега про "старших уважать надо". Ответ, что мудака за то, что тот состарился и обзавелся болячками, уважать не за что.

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

    А вот с тапаталком у меня отношения не сложились почему-то...

×
×
  • Создать...