Jump to content

snn_krs

Members
  • Content Count

    397
  • Joined

  • Last visited

Community Reputation

81 Обычный

About snn_krs

  • Rank
    Постоялец

Информация

  • Город
    Краснодар

Электроника

  • Стаж в электронике
    Более 20 лет
  • Сфера радиоэлектроники
    микроконтроллеры
  • Оборудование
    Осциллограф, мультиметр

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Поставьте другое значение поменьше. При 255 вы не увидете на индикаторе ничего, значения будут меняться каждые 1.2 мс. Поставьте например TCNT0=10;
  2. Откройте файл wdt.h и посмотрите, там после определения WDTO_4S и WDTO_8S есть список чипов для которых эти определения действуют. Atmega8a в этом списке нет.
  3. Правильное замечание, дополнительного кода не создает, но значительно проще. По коду не заметил ошибок, надо проверять в отладчике, там все регистры видны и установленные биты.
  4. Возможно вы забыли включит тактирование DMA или включили после инициализации. Проверил на F411 команды проходят. Выложите код инициализации DMA.
  5. Я уже исправил на 0x40026004 это регистр DMA_HISR. Сам запутался это регистр статуса.
  6. Похоже вы разрешаете не то прерывание. По моему правильнее будет. Тоже ошибся надо *(uint32_t*)( 0x400260A0 ) |= 0x10; // прерывание по флагу *(uint32_t*)( 0x40026004 ) |= 0x200000; // прерывание канала 6
  7. Было аналогичное поведение, если в цикле while (true) {} нет кода. Вставьте пару команд.
  8. Попробуйте убрать таймер 0 вообще, а в прерывании от таймера 2 мигато светодиодом. В даташите в разделе System Clock and Clock Options написано если CKOPT запрограммирован внешние конденсаторы не нужны. Вам нужно по 36 пФ поставить есле не меняете фьюзы.
  9. Если есть 5 кОм переменник, поставьте его и при техже напряжениях сравните значения.
  10. Какой номинал у переменного резистора ? Поставьте другой и сделайте теже измерения.
  11. Для I2C1 надо GPIO_PinAFConfig( GPIOA, GPIO_PinSource9, GPIO_AF_4 ); идля 10 пина тоже.
  12. Если прошивка слетела, ничего работать не будет. Все МК имеют защиту от чтения, поэтому считать с другого МК у вас не получится. Посмотрите цепь запитки всех светодиодов, возможно просто обрыв.
  13. Возможно вы не правильно проверяете. Посмотрите ассемблерный код. У меня получилось так: #pragma O0 ;;;539 delay_200ns_72(); 00005e f7fffffe BL delay_200ns_72 #pragma O3 00005e bf00 NOP 000060 bf00 NOP 000062 bf00 NOP ;;;538 ;;;539 delay_200ns_72(); ;;;540 Тоесть при о0 идет вызов функции, а при о3 - оптимизация - вызова функции нет, вставлены 3 NOPa.
  14. По включению и сбросу регистры устанавливаются в значения по сбросу. Например: 8.3.1 Clock control r gister (RCC_CR) Address offset: 0x00 Reset value: 0x0000 XX83 where X is undefined. Из этого видно, что запускается HSI генератор и т.п. Тоесть можно определить большинство параметров при включении МК.
  15. То что вы показали это проверка PLL. /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); ... if (HSEStatus == (uint32_t)0x01) { ... /* Wait till HSE is used as system clock source */ while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) { } } else { /* If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ } Если HSE генератор не запустился, то по while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); переключения на работу от HSE не будет и МК будет работать от HSI без PLL.
×
×
  • Create New...