Ivanyshka 0 7 января, 2020 Опубликовано 7 января, 2020 · Жалоба добрый вечер, не знаю с чего начать создание проекта STM32F401 на ассемблере. Необходимо реализовать функцию матлогики Y=(!A)*C+(!B)*(!C)+ A*(!C) , где в качестве выходного сигнала выступает сигнал Y (светодиод) и входныесигналы А, В, С (подключаемые кнопки ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 7 января, 2020 Опубликовано 7 января, 2020 · Жалоба 27 minutes ago, Ivanyshka said: начать создание проекта STM32F401 на ассемблере. На этом и закончить или пишите на С/С++. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ivanyshka 0 7 января, 2020 Опубликовано 7 января, 2020 · Жалоба В ТЗ сказано, что надо на ассемблерЕ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 7 января, 2020 Опубликовано 7 января, 2020 · Жалоба 1 minute ago, Ivanyshka said: В ТЗ сказано, что надо на ассемблерЕ Курсач? Типак? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 7 января, 2020 Опубликовано 7 января, 2020 · Жалоба Пишите на С, потом компилятор сделает ассемблерный код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 6 hours ago, Ivanyshka said: добрый вечер, не знаю с чего начать создание проекта STM32F401 на ассемблере. Скажите, пожалуйста, а раз вам дают такие задания, разве не обучали работе с инструментарием? Ну вот, поглядите) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
s_gary 0 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба Это стандартное задание, во все времена это было на разных камнях. Там никто не будет ничего проверять и чего-то загружать, надо просто сделать инициализацию, написать эту формулу на ассемблере, суметь объяснить почему, как, куда и всего делов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 2 hours ago, s_gary said: Там никто не будет ничего проверять Вот сие и есть плохо... то, что это стандартный пример - понятно. Но потом такой соискатель придёт на реальную работу, и... ничего сделать не сможет) Хотя, может быть я слишком категоричен) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 18 минут назад, haker_fox сказал: Вот сие и есть плохо... то, что это стандартный пример - понятно. Но потом такой соискатель придёт на реальную работу, и... ничего сделать не сможет) ...и станет вашим начальником. Потому что сам разрабатывать не умеет, значит пойдёт руководить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 9 minutes ago, jcxz said: Потому что сам разрабатывать не умеет, значит пойдёт руководить. На кой нужен такой руководитесь, если даже для такой примитивной задачи не может найти исполнителя Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба Берём С++ и лёгким движением руки получаем половину курсовика :) Осталось вставить это в стандартный стартап, включить тактирование портов и настроить Y на выход. bool A = PA_0::read(); bool B = PB_0::read(); bool C = PC_0::read(); PD_0 Y; Y = (!A)*C + (!B)*(!C) + A*(!C); // Листинг //bool A = PA_0::read(); LDR.N R2,??main_0 ;; 0x48000010 LDR R3,[R2, #+0] //bool B = PB_0::read(); LDR R4,[R2, #+1024] //bool C = PC_0::read(); LDR R5,[R2, #+2048] //PD_0 Y; //Y = (!A)*C + (!B)*(!C) + A*(!C); AND R6,R3,#0x1 AND R4,R4,#0x1 AND R0,R5,#0x1 EOR R6,R6,#0x1 AND R1,R5,#0x1 ORRS R4,R0,R4 AND R5,R5,#0x1 ANDS R6,R1,R6 EOR R4,R4,#0x1 AND R3,R3,#0x1 EOR R5,R5,#0x1 ORRS R4,R4,R6 ANDS R3,R5,R3 ORRS R3,R3,R4 ITE NE MOVNE R0,#+65537 MOVEQ R0,#+65536 STR R0,[R2, #+3080] Замечу лишь, что выбор других пинов под A,B,C,Y меняют код полностью. Это делает написание подобного кода на асме дурной работой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 2 часа назад, VladislavS сказал: Замечу лишь, что выбор других пинов под A,B,C,Y меняют код полностью. Это делает написание подобного кода на асме дурной работой. Если делать с умом да с использованием макросов (а например в IAR-овском ассемблере макроязык богаче си-шного), то ничего страшного. И можно написать код, который скорей всего никак не будет меняться со сменой пинов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 8 минут назад, jcxz сказал: И можно написать код, который скорей всего никак не будет меняться со сменой пинов. Это если сильно неоптимально писать. Пины то могут быть на одном порту и тупо лишних чтений порта не надо делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба Тупо вообще не надо делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 января, 2020 Опубликовано 8 января, 2020 · Жалоба 7 минут назад, VladislavS сказал: Это если сильно неоптимально писать. Пины то могут быть на одном порту и тупо лишних чтений порта не надо делать. И это тоже можно в макросе предусмотреть и не делать лишних чтений если порт совпадает, а использовать старое значение из регистра. Хотя для студенческого задания это уже избыточно будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться