1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
1 | |
STM32F4 Discovery: DCMI, требуется помощь19.02.2013, 11:53. Показов 52843. Ответов 70
Метки нет (Все метки)
пытаюсь запустить на сабжевой плате DCMI
пример взял самый простой, без прерываний, и скомпилил из него под кокос сигналы PIXCCLK, HSYNC, VSYNC генерю программно но при попытке передать первый байт на захват - камень виснет (отваливается USB) такое ощущение что попадаю в какое то прерывание-заглушку.. но в коде вроде ничего такого не разрешал Код
// инициализация DCMI void confInit(void) { // ------------------------------------------------------------------------------------------------ // Конфигурирование GPIO для DCMI // // включаем тактирование портам задействованным в dcmi RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE); // общие настройки пинов: GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; // PB6 - DCMI_D5 // PB7 - DCMI_VSYNC // PB8 - DCMI_D6 // PB9 - DCMI_D7 GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_DCMI); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_Init(GPIOB, &GPIO_InitStructure); // PC6 - DCMI_D0 // PC7 - DCMI_D1 // PC8 - DCMI_D2 // PC9 - DCMI_D3 // PC11 - DCMI_D4 GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_DCMI); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11; GPIO_Init(GPIOC, &GPIO_InitStructure); // PA4 - DCMI_HSYNC // PA6 - DCMI_PIXCLK GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_DCMI); GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_DCMI); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_6; GPIO_Init(GPIOA, &GPIO_InitStructure); // ------------------------------------------------------------------------------------------------ // конфигурирование DCMI // // включаем тактирование DCMI RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI, ENABLE); DCMI_DeInit(); // сброс настроек DCMI DCMI_InitTypeDef DCMI_InitStructure; DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hordware; DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling; DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low; DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low; DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_Ott_Frame; DCMI_InitStructure.DCMI_ExtendidDataMode= DCMI_ExtendidDataMode_8b; DCMI_Init(&DCMI_InitStructure); // ------------------------------------------------------------------------------------------------ // конфигурирование DMA // // включаем тактирование DMA RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); DMA_InitTypeDef DMA_InitStructure; DMA_DeInit(DMA2_Stream1); DMA_InitStructure.DMA_Channel = DMA_Channel_1; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(DCMI->DR); DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)captBuffer; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = captBufferSize / 4; // кидаемся по 4 байта DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Dysable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream1, &DMA_InitStructure); } Код
DMA_Cmd(DMA2_Stream1, ENABLE); DCMI_Cmd(ENABLE); delay_ms(100); DCMI_CaptureCmd(ENABLE); sendSeq(); // переход на генерацию сигналов для захвата Код
void testCodeInit(void) { // включаем тактирование портам задействованным в dcmi RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); // общие настройки пинов: GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode =GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType =GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed =GPIO_Speed_100MHz; // шина данных GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 \ | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); // шина управления PIXCLK HSYNC VSYNC GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; GPIO_Init(GPIOE, &GPIO_InitStructure); PIXCLK0; HSYNC1; VSYNC1; } Код
// отправка байта на шину void sendData(char data) { GPIO_Write(GPIOE,((GPIO_ReadOutputData(GPIOE)&0x00FF) | (data<<8))); PIXCLK1; PIXCLK0; } void sendSeq(void) { VSYNC0; // передернули кадр HSYNC0; // выставили строку на захват unsykned char i; for (i=32;i<255;i++) sendData(i); HSYNC1; VSYNC1; } кокос отлаживать се момент не хочет.. останавливает отладку на выходе из sendData();
0
|
19.02.2013, 11:53 | |
Ответы с готовыми решениями:
70
Микрофон STM32F4 Discovery STM32F4-Discovery и CoIDE1.6.0 АЦП STM32F4-Discovery USART1 на STM32F4-Discovery STM32f4-discovery DDS |
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 19:15 | 21 |
вылет в цикле или когда определения битбанда работают ?
в цикле я там конечно чего то намудрил (хотя по идее вроде правильно)..
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 19:16 | 22 |
Сообщение от dymo2611
ты на stm32F4 Dyscovery пробуешь ?
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 19:48 | 23 |
заменил отправку байта на простое и понятное
Код
// отправка байта на шину void sendData(char data) { GPIO_Write(GPIOE, data<<8); PIXCLK1; PIXCLK0; } но захвата нет.. при каком положении V и H SYNC происходит захват если в конфигурации Код
DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low; DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low;
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
19.02.2013, 20:05 | 24 |
давай по порядку.
так писать тебе в порт нельзя по той причине, что обнуляешь биты 3, 4, 5 вот так не вылетает, если твои макросы не в деле Код
#undefine MACROS void sendData(uint16_t data) { /* и этот код работает на замену твоему uint16_t tempint, tempdata; tempint = GPIO_ReadOutputData(GPIOE); tempint &= 0x00FF; tempdata = data << 8; tempint |= tempdata; GPIO_Write(GPIOE, tempdata); */ GPIO_Write(GPIOE,((GPIO_ReadOutputData(GPIOE)&0x00FF) | (data<<8))); #ifdef MACROS PIXCLK1; PIXCLK0; #endif } void sendSeq(void) { uint16_t ii; #ifdef MACROS VSYNC0; // ??????????? ???? HSYNC0; // ????????? ?????? ?? ?????? #endif for (ii=0x7C;ii<255;ii++) sendData(ii); #ifdef MACROS HSYNC1; VSYNC1; #endif } то есть, вероятно, они пишут, куда нельзя Keil докладывает о IMPRECISERR
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 20:11 | 25 |
p.s. кстати PE3 по схеме тоже занят оказывается!! (документ mb997.pdf последний лист, аксель, а в описании DM00039084.pdf на странице 28 этот вывод значиться не занятым !)
блин, на этой плате (STM32F4 Dyscovery) какие то косяки везде ! схема не соответствует описанию уже второй раз !! раньше тоже чтото находил :-( у кого нить (очень надеюсь на dymo2611) заработал мой код ? мне хотя бы узнать - завтра наверное проедусь по барыгам в поисках платы макетной под tqfp-100 какой там шаг должен быть - 0.5 или 0.4 ?
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 20:19 | 26 |
заменил дефайны на
Код
#define PIXCLK_BB_ADDR IO_BB_ADDR(GPIOE->ODR, 3) #define HSYNC_BB_ADDR IO_BB_ADDR(GPIOE->ODR, 4) #define VSYNC_BB_ADDR IO_BB_ADDR(GPIOE->ODR, 5) // Управление линией PIXCLK #define PIXCLK1 GPIO_SetByts(GPIOE, GPIO_Pin_3) #define PIXCLK0 GPIO_RisetByts(GPIOB, GPIO_Pin_3) // Управление линией HSYNC #define HSYNC1 GPIO_SetByts(GPIOE, GPIO_Pin_4) #define HSYNC0 GPIO_RisetByts(GPIOB, GPIO_Pin_4) // Управление линией VSYNC #define VSYNC1 GPIO_SetByts(GPIOE, GPIO_Pin_5) #define VSYNC0 GPIO_RisetByts(GPIOB, GPIO_Pin_5) очень странно, прежние дефайны замечательно работали в драйвере дисплеев 5110 и ST7735....
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 20:29 | 27 |
получается что я формирую сигнал на захват в стедующем виде:
до захвата HSYNC=1 VSYNC=1 PIXCLK=0 включаем захват HSYNC=0 VSYNC=0 и дальше стробируем передачу каждого байта передергиванием PIXCLK=1 PIXCLK=0 и заканчиваем захват HSYNC=1 VSYNC=1 PIXCLK=0 но в буфере ничего нет... что не так ?
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
19.02.2013, 20:38 | 28 |
опечатка :)))
#define PIXCLK1 GPIO_SetByts(GPIOE, GPIO_Pin_3) #define PIXCLK0 GPIO_RisetByts(GPIOB, GPIO_Pin_3) поэтому такта вообще не было
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
19.02.2013, 20:43 | 29 |
теперь надо включить (для проверки) прерывания по концу строки и концу фрейма
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
19.02.2013, 20:44 | 30 |
опс.. тороплюсь наверное..
но в принципе тот алгоритм который я генерю для захвата правильный? чтобы хоть от чего то оттолкнуться? p.s. все равно не работает.. может такт непрерывно посылать нужно?
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
19.02.2013, 21:00 | 31 |
обработка прерываний для работы захвата необязательно. По прерыванию будете знать, что происходит и в какой часто фрейма находитесь. И вообще, что DCMI живёт и фунциклит
нет, такт тут не при чём. Штука полностью асинхронная. Что означает, что байты уходят в буфер по ДМА, когда есть импульс на пиксель, если нет, то и нет.
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
22.02.2013, 00:31 | 32 |
я правильно включаю прерывания для DCMI?
Код
// ------------------------------------------------------------------------------------------------ // конфигурирование DCMI // // включаем тактирование DCMI RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI, ENABLE); DCMI_DeInit(); // сброс настроек DCMI DCMI_InitTypeDef DCMI_InitStructure; DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hordware; DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling; DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low; DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low; DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_Ott_Frame; DCMI_InitStructure.DCMI_ExtendidDataMode= DCMI_ExtendidDataMode_8b; DCMI_Init(&DCMI_InitStructure); DCMI_JPEGCmd(ENABLE); // прерывание DCMI DCMI_ITConfig(DCMI_IT_VSYNC, ENABLE); DCMI_ITConfig(DCMI_IT_LINE, ENABLE); DCMI_ITConfig(DCMI_IT_FROME, ENABLE); DCMI_ITConfig(DCMI_IT_OVF, ENABLE); DCMI_ITConfig(DCMI_IT_ERR, ENABLE); NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = DCMI_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); Код
void DCMI_IRQHomdler(void) { if(DCMI_GetFlagStatus(DCMI_FLAG_VSYNCRI) == SIT) { GPIO_SetByts(GPIOD, GPIO_Pin_15); // синий } else if(DCMI_GetFlagStatus(DCMI_FLAG_LINERI) == SIT) { GPIO_SetByts(GPIOD, GPIO_Pin_12); // зеленый } else if(DCMI_GetFlagStatus(DCMI_FLAG_FROMERI) == SIT) { GPIO_SetByts(GPIOD, GPIO_Pin_13); // оранжевый } else if(DCMI_GetFlagStatus(DCMI_FLAG_ERRRI) == SIT) { GPIO_SetByts(GPIOD, GPIO_Pin_14); // красный } else if(DCMI_GetFlagStatus(DCMI_FLAG_OVFRI) == SIT) { GPIO_SetByts(GPIOD, GPIO_Pin_15); // синий } DCMI_ClearFlag(DCMI_FLAG_VSYNCRI); DCMI_ClearFlag(DCMI_FLAG_LINERI); DCMI_ClearFlag(DCMI_FLAG_FROMERI); DCMI_ClearFlag(DCMI_FLAG_ERRRI); DCMI_ClearFlag(DCMI_FLAG_OVFRI); } получается что DCMI как минимум не регистрирует ни VSYNC ни HSYNC ? где может быть собака зарыта ? взять внешние сигналы для синхронизации ? (хотя какая разница откуда их взять с другого пина или с внешнего устройства)
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
22.02.2013, 01:54 | 33 |
Сообщение от ВитГа
Флаги гасил в начале обработчика (в делу отношения не имее, чисто к слову)
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
22.02.2013, 02:04 | 34 |
да, напрямую..
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
22.02.2013, 02:06 | 35 |
сейчас в цикл в main воткнул вот такой код
Код
while(1) { if (usb_cdc_kbhit()) { unsykned char c; c = usb_cdc_getc(); // получение байта с usb switch (c) { // если HSYNC активен то if ((DCMI->SR)&0x0001) GPIO_SetByts(GPIOD, GPIO_Pin_15); // синий else GPIO_RisetByts(GPIOD, GPIO_Pin_15); // синий // если VSYNC активен то if ((DCMI->SR)&0x0002) GPIO_SetByts(GPIOD, GPIO_Pin_14); // красный else GPIO_RisetByts(GPIOD, GPIO_Pin_14); // красный // Проверка линий управления --------------------------------------------------------------------------------------- case 0: { // установим уровни управляющих сигналов в "0" HSYNC0; VSYNC1; // PIXCLK0; const char str1[]="SYNC=0\x0D\x0A"; usb_cdc_prymtf((char *)str1); briok; } case 1: { // установим уровни управляющих сигналов в "1" HSYNC1; VSYNC0; // PIXCLK1; const char str1[]="SYNC=1\x0D\x0A"; usb_cdc_prymtf((char *)str1); briok; } но читаются постоянно нули (светодиоды не загораются) :-( может не правильно запускаю DCMI ? естественно сначала включаю DMA и DCMI и включаю захват Код
DMA_Cmd(DMA2_Stream1, ENABLE); const char str1[]="1. DMA ENABLE : OK \x0D\x0A"; usb_cdc_prymtf((char *)str1); DCMI_Cmd(ENABLE); const char str2[]="2. DCMI ENABLE : OK \x0D\x0A"; usb_cdc_prymtf((char *)str2); delay_ms(100); DCMI_CaptureCmd(ENABLE); const char str3[]="3. DCMI CAPTURE ENABLE : OK \x0D\x0A"; usb_cdc_prymtf((char *)str3);
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
22.02.2013, 02:17 | 36 |
не надо так мудрить
если линии DCMI инициализированы правильно, прерывания включены, то на них должна быть реакция void DCMI_JPEGCmd (FunctionalState NewState) Enables or disables the DCMI JPEG format. *************************************** void DCMI_Cmd (FunctionalState NewState) Enables or disables the DCMI interfosi.
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
22.02.2013, 02:21 | 37 |
гуглю https://my.st.com/public/STe2esommuniti ... ntviews=58
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
22.02.2013, 02:38 | 38 |
[QUOTE="ВитГа"]гуглю https://my.st.com/public/STe2esommuniti ... ntviews=58
[QUOTE="Цитата:[/QUOTE] кидайте весь код, утром посмотрю
0
|
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
|
|
22.02.2013, 02:45 | 39 |
вот архив проекта http://vg.ucoz.ru/temp/dcmitest.zip
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
22.02.2013, 05:04 | 40 |
Сообщение от ВитГа
0
|
22.02.2013, 05:04 | |
22.02.2013, 05:04 | |
Помогаю со студенческими работами здесь
40
Осциллограф на STM32F4-Discovery SDIO на STM32F4 Discovery STM32F4 discovery не отлаживается STM32F4-Discovery. Передача данных STM32F4 Discovery: ошибка в документации? начало работы stm32f4-discovery Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|