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

ohmjke

Участник
  • Постов

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

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


  1. Hard fault

    Переполнение стека? Что там в PC, LR до прыжка по вектору обработчика HF?
  2. Всем спасибо за предложенные варианты, но все не то - высота везде слишком большая, в среднем минимум в районе 70мм. Но, как я писал в начале темы, мне нужно 40мм, при минимальных неактивных областях.
  3. Широкий и короткий там только последний, который с диагональю 19.2". Но для меня это слишком :)
  4. Ну что, никто не может помочь?
  5. Пытаю SDIO на плате SK-STM32F217. Карту пока не подключал, хочу увидеть хоть какую-нибудь осмысленную активность на сигнальных линиях. Осуществляю инициализацию и отправку команды, но вижу только мусор на линии CLK, на остальных ничего нет. Может кто-нибудь проверить у себя мой вариант? Или подкинуть 100% рабочий код, без лишних функций. static SDIO_InitTypeDef s_sdio_param = { SDIO_ClockEdge_Rising, SDIO_ClockBypass_Enable, SDIO_ClockPowerSave_Disable, SDIO_BusWide_1b, SDIO_HardwareFlowControl_Disable, 0 }; void bsp_sd_init (void) { SDIO_CmdInitTypeDef SDIO_CmdInitStruct; s_gpio_init(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SDIO, ENABLE); SDIO_SetPowerState(SDIO_PowerState_ON); while (SDIO_GetPowerState() != 0x03) { continue; } SDIO_Init(&s_sdio_param); SDIO_ClockCmd(ENABLE); SDIO_CmdInitStruct.SDIO_CmdIndex = 0xAA; SDIO_CmdInitStruct.SDIO_Argument = 0xCCCCCCCC; SDIO_CmdInitStruct.SDIO_Response = SDIO_Response_No; SDIO_CmdInitStruct.SDIO_CPSM = ENABLE; SDIO_CmdInitStruct.SDIO_Wait = SDIO_Wait_No; SDIO_SendCommand(&SDIO_CmdInitStruct); } static void s_gpio_init (void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_CLK | RCC_CMD | RCC_D3 | RCC_D2 | RCC_D1 | RCC_D0, ENABLE); GPIO_PinAFConfig(GPIO_CLK, PINSOURCE_CLK, GPIO_AF_SDIO); GPIO_PinAFConfig(GPIO_CMD, PINSOURCE_CMD, GPIO_AF_SDIO); GPIO_PinAFConfig(GPIO_D3, PINSOURCE_D3, GPIO_AF_SDIO); GPIO_PinAFConfig(GPIO_D2, PINSOURCE_D2, GPIO_AF_SDIO); GPIO_PinAFConfig(GPIO_D1, PINSOURCE_D1, GPIO_AF_SDIO); GPIO_PinAFConfig(GPIO_D0, PINSOURCE_D0, GPIO_AF_SDIO); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Pin = PIN_CMD; GPIO_Init(GPIO_CMD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = PIN_D3; GPIO_Init(GPIO_D3, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = PIN_D2; GPIO_Init(GPIO_D2, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = PIN_D1; GPIO_Init(GPIO_D1, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = PIN_D0; GPIO_Init(GPIO_D0, &GPIO_InitStructure); GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Pin = PIN_CLK; GPIO_Init(GPIO_CLK, &GPIO_InitStructure); }
  6. Ищу что-то типа такого - http://www.display-solution.com/en/product...lcd-panels.html Ориентировочные размеры 20x4 см при разрешении порядка 1024X324. Разрешение можно и другое, чуть меньше/больше - не важно, но размеры по вертикали и горизонтали не должны сильно отличаться, особенно первый. Очень важно, чтобы активная область по вертикали была как можно ближе к внешнему вертикальному размеру модуля, т.е. нужен модуль с как можно более узкими "полосами" вверху и внизу. Управление по параллельной RGB шине, без всяких VGA, DVI и прочего, тупо TFT матрица с TCON. Тач-панель не требуется. У производителя, представленного выше, как я понял, купить штучно нельзя, а опт мне не нужен. На всяких ebay/aliexpress ничего подобного нет, только мониторы с таким соотношением сторон, но диагональю в десятки дюймов.
  7. Спустя год после Вашего сообщения они уже появились А что за TFT то была? Какая частота кадров получилась при этих самых 10МГц клока?
  8. Так а почему все-таки так нельзя делать? Если просто выполнить typedef так: typedef struct { int a; char b; } test_t; то все работает. Но мне для связного списка как раз нужно поле с указателем на следующий элемент: typedef struct { int a; char b; test_t *next; } test_t; вот так не работает, пиште "unknown type name". Но почему? Тип test_t ведь определен. Приходится делать так: typedef struct { int a; char b; struct test_t *next; } test_t; А чтобы потом в коде еще можно было сделать так: test_t *s_test; s_test = s_test->next; (ошибка "a value of type "test_t *" cannot be assigned to an entity of type "struct test_t *") приходится добавлять test_t между идентификатором struct и фигурными скобками: typedef struct test_t { int a; char b; struct test_t *next; } test_t;
  9. Нет, решения не нашел. Что пробовать уж и не знаю. С нагревом проблем нет.
  10. Всё вместе за 1000руб!
  11. Тут был мой вопрос, ответ на который я сразу же сам нашёл :laughing:
  12. Матрица всё еще продается. Кроме этого: LT1210CR в D2PAK две штуки сразу, 500р. за обе. HIH9131-021-001S - цифровые датчики влажности/температуры, I2C интерфейс, результат 14бит, точность темп./влаж. - 0.6C/1.7% Две пары, 500р. за пару.
  13. TFT at070tn92 + TouchPanel

    Только Питер. Новая TFT-матрица с резистивной Touch-панелью, 500руб. В нагрузку могу отдать платы-переходники с FFC/FPC на DIP.
  14. Owon sds6062, Питер

    Продам за 10000. Состояние идеальное, использовался пару десятков раз. Покупался в платане около полугода назад. Только СПб самовывоз.
  15. Что, неужели никто не работал с этим контроллером?
  16. SSD1322, 256x64

    При выставлении column start adress и end adress не могу понять откуда берется смещение 0x1C = d28. Т.е., если у меня 256 пикселей ширина матрицы, значит количество столбцов 64 (один столбец - 4 пикселя). Логично сделать start/end column равными 0/63, но ставят 28/91. Это смещение есть во всех найденных мною исходниках, и с ним всё работает нормально, но в даташите ничего подобного вообще не вижу. Кроме этого, если при инициализации не трогать никакие настройки, а только вывести дисплей из стендбай режима и включить режим ON, т.е. все пиксели светятся по максимуму, то наблюдаются две полосы по бокам с яркостью меньшей, чем в середине - что за фигня? :( Сфоткать это дело не получится. Ширина полос, вычисленная чередующимися выводом линии определенной длины и засветки всего экрана, равна 32 пикселям (если глаз не подвел). SSD1322.pdf
  17. Пришлось городить кольцевой буфер в RAM. Пока всё работает норм...
  18. Пишу на SDHC блок и после этого читаю его. После записи сначала жду токена Data response со значением Data accepted - все ОК, получаю его сразу после второго байта CRC16. Затем, как я понял, карта шлёт busy байты в виде нулей, типа происходит запись из буфера в саму flash. Но эти busy заканчиваются только через 6-10 мс! Неужели, так и должно быть? Если так ждать после записи каждого байта, то получится максимальная скорость не более 100кБ/сек - бред. Сейчас ещё раз глянул анализатором сразу после подачи питания - так busy длится вообще 20мс...
  19. Просто ответ писал на работе, а ворда там нет. Можно было бы скачать какой-нибудь аналог, но на тот момент мне было лень :rolleyes:
×
×
  • Создать...