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

snn_krs

Members
  • Постов

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

  • Посещение

Весь контент snn_krs

  1. Попробуйте VBAT подключить к питанию. Посмотрите что на NRST.
  2. Это у вас .hex файл ? Насколько я знаю avrdude работает с Intel Hex форматом, а не с тем, что вы показали.
  3. Попробуйте другую программу. Я писал из CodeVisionAVR проблем не было.
  4. Поставьте перемычку на jp3 для уменьшения частоты программирования.
  5. При программировании по ISP фьюз SPIEN нельзя изменить. Скорее всего включен низкочастотный генератор и надо снижать частоту программирования ( если это возможно в USBASP ).
  6. У сложения более высокий приоритет. В первом случае сначала выполняется сложение 4+0x30, а потом сдвиг >>.
  7. В обработчике прерывания вставьте сброс флага прерывания.
  8. Если обработчик прерывания объявлен не правильно, контроллер будет перегружаться. Проверьте как объявляются обработчики прерываний. Возможно компилятор выдает предупреждение типа - Функция ISR_TIM2_CC не используется.
  9. В мануале есть описание как определить параметры ШИМ сигнала. Описание для таймера 1, но для таймера 2 оно тоже подходит. PWM input signal measurement - на странице 168.
  10. У вас в примере нет команды типа ADCSRA = 0; // не обнуляет Если это так, то это конечно ошибка. Надо смотреть ассемблерный код.
  11. Командой ИЛИ биты не обнуляются, посмотрите таблицу. Данная команда ничего не делает.
  12. Разницы нет. Просто вы используете разные команды. Думаю по невнимательности. ADCSRA |= ADCSRA | Х; ADCSRA = Х;
  13. Да, только на концах линии. В промышленных приборах резисторы ставят во всех, а подключаются перемычками, или програмно только на последних.
  14. if ( xTaskCreate( ... ) != pdTRUE ) { ErrorBlink( 5 ); while( 1 ) {} }; Или чтото подобное. В файле FreeRTOSConfig.h задается время запуска планировщика #define configTICK_RATE_HZ ( ( TickType_t ) 500 ) // каждые 2 мс. Если вы это имели ввиду. Если одна задача должна вызываться каждые 2 мс. , то можно ей задать более высокий приоритет и вызывать из прерывания таймера по семафору.
  15. Похоже мало памяти для трех задач. Уменьшите значение configMINIMAL_STACK_SIZE. Проверяйте при создании задач возвращаемое значение.
  16. В файле stm32f0xx.h найдите строку #define RCC_CFGR2_PREDIV1 ((uint32_t)0x0000000F) /*!< PREDIV1[3:0] bits */ и после нее вставьте #define RCC_CFGR2_PREDIV RCC_CFGR2_PREDIV1
  17. А что у вас получается реально Fout=0,98Hz ? Должно быть 27 Hz.
  18. Должен быть обработчик прерывания: EXTI15_10_IRQHandler и разрешать __NVIC_EnableIRQ(EXTI15_10_IRQn); соответственно.
  19. Опорное у вас точно 2.55 ?. Подаете от отдельного источника или питание контроллера 2.55 ?
  20. Калькулятор по вашей формуле показывает 0.027В. Покажите код вычисления и вывода на индикатор.
  21. В даташите в таблице 10 есть Driver Load Impedance 100 Ом для RS422 и 50 Ом для RS485. Ставьте на стороне последнего приемника 120 Ом для RS422 или по 120 Ом на обеих концах для RS485.
  22. Попробуйте уменьшить R8, а С7 отключить или на землю посадить.
  23. Установите в регистре EXTI_SWIER 17 бит. Должен установиться 17 бит в EXTI_PR и сработать прерывание по будильнику. Если не сработало, значит не проходит прерывание на NVIC. Если сработало, значит не приходит с часов.
×
×
  • Создать...