Jump to content
    

adnega

Свой
  • Posts

    3,420
  • Joined

  • Last visited

  • Days Won

    1

adnega last won the day on July 2

adnega had the most liked content!

Reputation

2 Обычный

2 Followers

About adnega

  • Rank
    Гуру
    Гуру
  • Birthday 05/01/1982

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

10,647 profile views
  1. Теперь понятно. 64 бита - это 8 байт. Т.е. нужно писать не менее 8 байт. Такое требование, действительно, есть у многих. У меня заголовок 16 байт - прокатывает. Сделано как обсуждалось: пишу обновление во флеш, считаю CRC, если совпало пишу заголовок; при старте проверяю заголовок и если он корректный, то считаю CRC, только после этого делаю полезную работу. На XMC4000 такое должно работать. Еще примеры будут (где более 16 байт)?
  2. Ну, это как бы один пример семейства XMC4000. Но даже так. У данного МК стирание идет секторами, а запись страницами по 256 байт. Нигде нет запрета на дописывание страницы. Да, упоминается Dynamic Error Correcting Code (ECC) with Single-bit Error Correction and Doublebit Error Detection (“SEC-DED”). Но, может, все волшебство в слове "Dynamic". Вы пробовали дописывать страницу? У меня есть несколько XMC4108Q48K64BAXUMA1, но так лень паять макет, чтобы проверить...
  3. Модератор: тема была выделена в отдельный топик из Пожалуйста приведите три примера. Особо интересуют варианты, где блок более 16 байт.
  4. Эти cortex-микроконтроллеры.. мало изучать доки от производителя МК, нужно еще изучать доки производителя ядра (CMSIS так точно).
  5. Установить VTOR можно функцией /*! \brief set the NVIC vector table base address \param[in] nvic_vict_tab: the RAM or FLASH base address \arg NVIC_VECTTAB_RAM: RAM base address \arg NVIC_VECTTAB_FLASH: Flash base address \param[in] offset: Vector Table offset \param[out] none \retval none */ void nvic_vector_table_set(uint32_t nvic_vict_tab, uint32_t offset) { SCB->VTOR = nvic_vict_tab | (offset & NVIC_VECTTAB_OFFSET_MASK); __DSB(); }
  6. Это не фишка какого-то производителя или семейства, VTOR - это часть ядра (в данном случае Cortex-M23) Правда, опциональная. На 21 странице список опций: Типа, VTOR у вас должен быть. В файле gd32e23x.h Указано, что VTOR есть.
  7. Протокол CAN уже есть или можно свой придумать?
  8. Я на днях для этого МК не смог найти даже значений Vih и Vil. Может, у вас есть полная документация?
  9. А если внимательнее почитать? У STM32F103 тоже ноль по-умолчанию:
  10. А где инициализация самого таймера? Типа такой: timer_deinit(TIMER1); /* initialize TIMER init parameter struct */ timer_struct_para_init(&timer_initpara); /* TIMER1 configuration */ timer_initpara.prescaler = 11999; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 9999; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_init(TIMER1, &timer_initpara); /* enable the TIMER interrupt */ timer_interrupt_flag_clear(TIMER1, TIMER_INT_FLAG_UP); timer_interrupt_enable(TIMER1, TIMER_INT_UP); timer_enable(TIMER1); Для GD32E103 у меня инициализация энкодера простейшая: void init_TIMER3(void) { TIMER3->CTL0 = 0; TIMER3->CTL1 = 0; TIMER3->SMCFG = (3 << TIMER_SMCFG_SMC); TIMER3->PSC = 0; TIMER3->CAR = 0xFFFF; TIMER3->CTL0 = (1 << TIMER_CTL0_CEN); }
  11. Как бы там официально нет CAN вообще. Вот в GD32C103 - есть. На самом деле уже во второй партии GD32E103CBT6 с двумя работающими CAN-FD, но не знаю насколько они там устойчиво-рабочие и когда лавочка может быть прикрыта...
  12. Во FreeRTOS не нашел такого вызова. Можете показать? В F767 в HAL_Init() есть HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4), который все размотает в __NVIC_SetPriorityGrouping(). Поэтому с именами у меня сомнения, которые можно развеять значением SCB->AIRCR перед местом фейла.
  13. Я такое ловил во FreeRTOS, и не раз тут писал - проверьте установку приоритетов прерываний. Что-то типа такого в начало main: NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  14. Скорее так: если есть приемник слабого сигнала, то лучше обрезать все вне полосы полезного сигнала, т.к. на вход может попасть чужой сигнал высокой мощности и перегрузить входную часть приемника.
×
×
  • Create New...