Jump to content

    

GenaSPB

Участник
  • Content Count

    2116
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

About GenaSPB

  • Rank
    Гуру
  • Birthday 03/02/1964

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

19374 profile views
  1. https://github.com/ua1arn/hftrx/blob/567e22fa03f3a080c959507b499723a4aee1c994/src/display/framebuf.c#L1213 Для каждой из обоастей надо указать, сколько осталось до 1024 полной ширины экрана
  2. Эклипс не конв4ртир3ет файл на ходу если он открыт... затащите вусе в клиппоард. Закройте файл. Откройте опять - он уже считается в нужной. Зам5ня4те содержимое на новое из клипбоард.
  3. #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ и #ifdef __cplusplus } #endif /* __cplusplus */ в 3д хедер.
  4. // Настроим модуль SPI. RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; // подать тактирование (void) RCC->APB2ENR; //SPI1->CR1 = 0x0000; //очистить первый управляющий регистр //SPI1->CR2 = 0x0000; #if WITHSPIHWDMA DMA2_SPI1_TX_initialize(); DMA2_SPI1_RX_initialize(); #endif /* WITHSPIHWDMA */ /* настраиваем в режиме disconnect */ SPIIO_INITIALIZE(); Подгттовка параметрв для разнфз режимов и скоростей: unsigned value; /* делителя нет, есть только прескалер - значение делителя не используется */ const uint_fast8_t prei = calcdivider(calcdivround_per_ck(spispeed), STM32F_SPIBR_WIDTH, STM32F_SPIBR_TAPS, & value, 1); const uint_fast32_t cfg1baudrate = (prei * SPI_CFG1_MBR_0) & SPI_CFG1_MBR_Msk; const uint_fast32_t cfg1 = cfg1baudrate;// | (SPI_CFG1_CRCSIZE_0 * 7); //PRINTF(PSTR("hardware_spi_master_setfreq: prei=%u, value=%u, spispeed=%u\n"), prei, value, spispeed); spi_cfg1_val8w [spispeedindex] = cfg1 | 7 * SPI_CFG1_DSIZE_0 | 0; spi_cfg1_val16w [spispeedindex] = cfg1 | 15 * SPI_CFG1_DSIZE_0 | 0; spi_cfg1_val32w [spispeedindex] = cfg1 | 31 * SPI_CFG1_DSIZE_0 | 0; const uint_fast32_t cfg2bits = SPI_CFG2_SSOM_Msk | SPI_CFG2_SSOE_Msk | SPI_CFG2_SSM_Msk | // 1: SS input value is determined by the SSI bit SPI_CFG2_MASTER_Msk | SPI_CFG2_AFCNTR_Msk | // 1: the peripheral keeps always control of all associated GPIOs 0; enum { CFG2_MODE0 = 0, // TODO: not tested CFG2_MODE1 = SPI_CFG2_CPHA_Msk, // TODO: not tested CFG2_MODE2 = SPI_CFG2_CPOL_Msk, // CLK leave HIGH CFG2_MODE3 = SPI_CFG2_CPOL_Msk | SPI_CFG2_CPHA_Msk // wrk = CLK leave "HIGH" }; // подготовка управляющих слов для разных spi mode, используемых контроллером. // 8-битная или 16-битная передача программируется в CR2 spi_cfg2_val [SPIC_MODE0] = cfg2bits | CFG2_MODE0; spi_cfg2_val [SPIC_MODE1] = cfg2bits | CFG2_MODE1; spi_cfg2_val [SPIC_MODE2] = cfg2bits | CFG2_MODE2; spi_cfg2_val [SPIC_MODE3] = cfg2bits | CFG2_MODE3; Передв 8-бит обменами: HARDWARE_SPI_CONNECT(); SPI1->CFG1 = spi_cfg1_val8w [spispeedindex]; SPI1->CFG2 = spi_cfg2_val [spimode]; SPI1->CR1 |= SPI_CR1_SSI; SPI1->CR1 |= SPI_CR1_SPE; SPI1->CR1 |= SPI_CR1_CSTART; Отключаемся: SPI1->CR1 |= SPI_CR1_CSUSP; while ((SPI1->CR1 & SPI_CR1_CSTART) != 0) ; SPI1->CR1 &= ~ SPI_CR1_SPE; // connect back to GPIO HARDWARE_SPI_DISCONNECT(); hftrx/hardware.c at master · ua1arn/hftrx (github.com)
  5. --cpu=Cortex-M7.fp.sp наверное использует... Читайте описание ключей вашего компидятора Выход за границы массивов и мне ненравится
  6. аппаратный double есть только в F767. Неравильно поняли. ПРосто сравнить с 0 а не 0.0 Автор явно испольщовал колючик для трактования всеъ констант как float а не double
  7. Вот такая хрень: if ((v2[1] - v1[1]) > 0.0) Будет счиьаться в double. Чего просто с "0" не сравнить? Это использовать тоооолько с доработкой напилником. А то тормоза на ровном месте (или с ключами с нарушением стандарта. но зачем автору это?)
  8. Вне зависимости от включения - ваш компилятор может использовать или нет аппаратуру для расчета
  9. Нет, это не оно. Искать что-то вроде -mfloat-abi=hard
  10. .... Нафик. Стер. При вызове dsp3D_projectVertex из dsp3D_renderPoint используется память за пределами массива coord. И об этом сообщает компилятор еще до исполнения... Куда автор смотрел?
  11. Да, там DWT такого нет... Есть дркугие счетчики циклов но Вам они бесполезны...
  12. Код подсчеиа иактов с использованием dwt дайте
  13. Не только частотой. Тут а7 а не м7. И cmsis скомпилирована с максимальной оптимизацией по скорости. Еще вас спрашивали про пиксел клок вашего дисплея. В остатках кода увидел размеры 1024 на 600. По паспорту на 7 дюймов обычно 50 МГц. Скажем прямо - с таким дисплеем и при 32 бит цвете на работу процессора с памятью sdram на FMC совсем не остается пропускной способности. 1024 на 600 при 60 кадров в секунду и 32 бит цвете это около 200 мегабайт в секунду из памяти к ltdc. На моем аппарате 800х480 и память 16 бит ddr3 на 533 мгц. Потому 120 мегабайт в секунду при 32 бит цвете не влияют существенно.