- Прошу помочь низкоуровневыми примерами работы с графикой (asm). Сейчас не от чего отталкиваться. Не могу найти примеры. Ссылки тоже не помешают. - mazur(07.05.2011 10:59, AVR, полностью)
- Сделал пробные шаги. На данный момент что у меня получилось. Картинка размером 8х8 бегает влево-вправо-вверх-вниз и заново. Вверх-вниз попробовал как с указателями (операции с байтами) так и с транспонированием (операции с битовым полем). В mazur(280 знак., 12.05.2011 21:32)
- Асм Z80 пойдет? :) IdleMode(31 знак., 07.05.2011 22:31,
)
- может, пора завязывать с ассемблером? - koyodza(07.05.2011 18:02)
- Не. Ему надо освоить программирование "сверху вниз", говорили уже. maik-vs(271 знак., 07.05.2011 22:28)
- Да, это все предел. Но напоследок хотел бы доделать задумки. - mazur(07.05.2011 18:10)
- Есть у меня один знакомый ассемблерщик, жду его, пива попить, вопросами помучать :) - mazur(07.05.2011 18:13)
- ассемблерщики пьют коньяк - Snaky(07.05.2011 18:19, ссылка)
- если интересуют алгоритмы работы, то они слабо зависят от языка. Но вопрос был поставлен иначе: "дайте примеров на ассемблере" - koyodza(07.05.2011 18:18)
- меня интересуют алгоритмы - mazur(07.05.2011 18:19)
- Вам нужно утвердиться в своих желаниях: вначале разобраться самому, что Вам нужно, и чего Вы хотите. И ещё постараться хоть немного сблизить эти два понятия. Только после этого Вы сможете получить помощь - koyodza(07.05.2011 18:25)
- В данный момент мне нужно делать сдвиги вправо-влево, вверх-вниз. Влево-вправо, в принципе, проблем нет. Вверх-вниз начинаются головняки. - mazur(07.05.2011 18:34)
- как растрированы байты? Т.е. байт - это строка или столбец? - koyodza(07.05.2011 18:35)
- Формат данных: mazur(911 знак., 07.05.2011 18:49)
- Уходи ты от детсадовских макро по каждому поводу, делай вместо них вменяемые и "реюзабельные" функции-подпрограммы. С твоим подходом ровно шаг остался до окончательного слива такого кода четко написанному коду на С - MBedder(09.05.2011 23:25)koyodza
- сдвиг вверх-вниз в данном случае это всего-навсего копирование буфера koyodza(693 знак., 07.05.2011 21:03)
- Пипец. Из-за неучтенной ошибки не мог понять в чем дело. Влево-вправо работает. Вверх-вниз тоже, сдвиг шел, но не полностью. Доходил до последнего сдвига, и заново. Меня это и бесило, оставались загораться последние биты. Несколько дней парился, mazur(515 знак., 09.05.2011 22:38 - 22:41)
- Поправка, не инкремент указателя, а увеличение на размер строки в байтах, + битовые операции маскирования, если перемещаемая строка бит не кратна байту. - =AlexD=(08.05.2011 07:33)
- А щас давай это на ассемблере для нормальных пацанов ;) - Гудвин(07.05.2011 21:11)
- Ну ты сказанул... - Гудвин(07.05.2011 18:20)
- Смысла в ассемблере нет. - fk0(07.05.2011 12:46)
- Ксения и Mbedder молчат, хотя повод есть - new Atmel AVR Studio 5 - amusin(05.05.2011 12:05, AVR, ссылка, полностью)
- AVR Dragon кто нибудь использует? antm(53 знак., 25.04.2011 14:48, AVR, ссылка, полностью)
- Прошивка по AVRISP ATMEGA 128Программа скомпилирована в JAR при переходе в AVRSTUDIO открывается симулятор и все нормально.Но при попытке программировать через AVRISPmkii удается прошить только при использовании внешних Hex файлов.Внутренную Юрий(383 знак., 22.04.2011 19:13,
, AVR, полностью)
- Всем добрый день! Вчера решил немного сесть и попрограмить в IAR для AVR. Во время написания программы возникла необходимость посчитать колличество цифр в числе и вот тут возникли трудности. Как посчитать количество цифр в числах 150 или 25 (в Паша(910 знак., 21.04.2011 14:06,
, AVR, полностью)
- Прошу небольшого ликбеза, как попроще реализовать массив данных в еепром с динамическим объемом блоков данных. В данный момент мне это требуется для реализации светодиодной матрицы. Выводить эффекты, текст. Сижу соображаю, как сделать. То ли mazur(143 знак., 14.04.2011 20:49, AVR, полностью)
- тоже спрошу про I2C в мегах. Не могу понять такой вещи: практически на все команды модуль TWI реагирует прерыванием по выполнению команды, включая и такую специальную команду как сделать START. Однако! Если я задаю команду STOP (через бит TWSTO), bialix-lazy(642 знак., 29.03.2011 16:47,
, AVR, полностью)
- проблема с avr-gcc: столкнулся с тем, что avr-gcc переставляет инструкции как считает нужным, при этом ломается логика программы. Как с этим бороться?Простой пример: нужно проверить, что 2х байтная переменная не равна нулю. Переменная может bialix-lazy(629 знак., 31.03.2011 14:26,
, AVR, полностью)
- USART в хмеге. Нихрена не понятно der student(1534 знак., 30.03.2011 08:21 - 10:33, AVR, полностью)
- Почему может не возникать прерывание после засылки условия СТАРТ по I2C командой: cvv(76 знак., 28.03.2011 19:06 - 20:00, AVR, полностью)
- Есть битовое поле. Скажем, 24 бита, то есть, 3 байта. И нужно проверить определенный бит. Когда писал проверочный код, это получилось 24 функции, которые отличались только номерами битов. Попытался возложить эту функцию микроконтроллеру. mazur(5885 знак., 28.02.2011 16:06, AVR, полностью)
- Сорри, не могу предыдущий свой мусор редактировать. Timlansen(1575 знак., 25.03.2011 01:03 - 21:35)
- А нужна ли тебе эта функция? AD(608 знак., 03.03.2011 22:42, ссылка)
- Вот вам пример подпрограмма, уважаемый. Задаете номер бита и получаете его значение в бите T. Это для IAR, для других сред адрес задаваемого массива кажется надо писать (ИМЯ_МАССИВА*2). Ну, попробуйте.;;;;;;;;;;;;;;;;;;;;;;;; объявление некого Barinov(811 знак., 03.03.2011 18:53,
)
- Спасибо всем!!! Что не сочли за труд, нашли время, ткнули носом, подсказали, дали идей. Я получил даже больше, чем просил. mazur(591 знак., 01.03.2011 21:29)
- Ну вроде решил. mazur(7660 знак., 01.03.2011 18:00)
- Я знаю, что Вы leon_(617 знак., 01.03.2011 11:06)
- Может быть, что-то такое? Если подходит, можно оформить подпрограммой. leon_(1353 знак., 28.02.2011 22:44 - 23:20)
- Будь проще, и к тебе потянутся люди :) Фтыкай и учись - 2 слова/3 такта вместо всего твоего монстрика, да еще и бит-массив любой длины, кратной MBedder(1003 знак., 28.02.2011 22:23 - 22:54)
- можно про операнд % ? - mazur(01.03.2011 01:22)
- И таких 24 штуки для задаваемого бита? Тогда в чем радость? - Barinov(28.02.2011 23:17,
)
- Еще один умник :)) ОДНА (1) штука для любого бита - одна на всех, соколик :) - MBedder(28.02.2011 23:19)
- Соколик, твое макро делает сдвиг на жестко задаваемой позицию бита. Для другой позиции искомого бита будет другое макро. Итого 24. От чего афтор и уйти хочет. - Barinov(28.02.2011 23:24,
)
- Если бы ты хоть чуток понимал в ассемблере, то увидел бы, что "моё макро" ничего никуда не сдвигает. Ступай, соколик - MBedder(01.03.2011 01:23)
- Не 24 а один этот макрос, а номер бита идёт вторым параметром макроса (константой). Посмотрите внимательней. - leon_(28.02.2011 23:37)MBedder
- Вот именно, задается константой. И кодовая реализация будет для каждого бита разная. И для всего набора анализируемых бит должен быть полный набор реализации макросов, от чего автор собственно и хочет уйти. Вот я и спрашиваю, в чем радость? - Barinov(01.03.2011 08:45,
)
- Радость в том, что оптимизируется либо размер либо скорость, в данном случае скорость. Топикастер хочет знать как это делать ВААЩЕ - результат налицо. - Xитpый Kитaeц(01.03.2011 11:58)
- Кстати, соколик уже понял это, и запел про "легко модифицировать", а вначале пел про 3 такта "вместо всего твого монстрика":))) - Barinov(01.03.2011 08:48,
)
- Ты обтекай поаккуратнее, а то брызги летят :)) - MBedder(01.03.2011 19:21)
- Он прав если че... Смешны скорее Вы со своими 3 тактами. Надо читать тему. - IvanKo(01.03.2011 20:13,
)
- Если чё, то в теме написано: "Есть битовое поле. Скажем, 24 бита, то есть, 3 байта. И нужно проверить определенный [= заранее известно какой] бит" - что мой двухсловный макрос именно и делает. MBedder(466 знак., 01.03.2011 21:06)
- Если че, то там в теме написано, что он сделал 24 функции которые отличались только номерами бит, и это ему не нравится. Вы ему предлагаете генератор тех же 24-х реализаций и уверяете что на все про все 3 такта. Где логика? - Barinov(01.03.2011 22:16,
)
- Я ему предлагаю не генератор, а суперкомпактный автоматический инлайн-реализатор тех функций. А тебе предлагаю оставить содержимое твоего горшка в покое, и больше им не плеваться - MBedder(01.03.2011 23:41)
- Вы предложили расхожий вариант для генерации своего куска кода для анализа каждого бита. Автор подтвердил, что хотел не этого. В чем проблемма признаться что Вы не прав? - Barinov(03.03.2011 08:39,
)
- Вы уже столько написали... Не проще было скопипастить макрос, пару раз его вызвать да посмотреть дизассемблером, что получится? Лень? Так я Вам скажу: на каждый вызов будут подставлены те два оператора с правильными аргументами. - maik-vs(03.03.2011 10:22)
- Друг, ты не меньше понаписал, пора понять, что Мазуру нужен ззадаваемый номер бита, а ему дали метод обращения к константнозадаваемому биту. Вот попробуй напиши цикл опроса всех бит, и увидишь что это не 3 такта. Нужна подпрограммка, говорю же, а BorisSh(10 знак., 03.03.2011 15:15,
)
- Где я понаписал? А Мазуру нужно переходить на Си с его любовью к монструозным конструкциям. Ладно, maik-vs(333 знак., 03.03.2011 15:56)
- Ни за что не поверю, что ваши программы с первого раза безупречны. - mazur(04.03.2011 22:36 - 05.03.2011 11:37)
- Вот полученная мною подпрограмма. Напишите ее короче. - mazur(03.03.2011 20:21, ссылка)
- Думаю, оптимальнее уже не сделать. mazur(614 знак., 04.03.2011 21:48)
- Вот код, который покороче будет: 580BM80(895 знак., 04.03.2011 07:27 - 07:30)
- "Не корысти ради"(с) - еще чуток покороче и побыстрее :)) MBedder(802 знак., 04.03.2011 12:26 - 25.03.2011 03:21)
- Не думал, что эту тему снова поднимут. Раз так, спрошу, откуда взялась цифра именно 32? Я не спрашиваю, для чего, спрашиваю-откуда? - mazur(25.03.2011 06:51)
- За mul респект! Бум знать. - maik-vs(05.03.2011 12:53)
- Только справедливости ради :) И быстрее и универсальней, но не короче. - 580BM80(04.03.2011 13:39)
- Человек не может думать на ассемблере. А бит один или несколько? Если один, то можно вначале проверить на 0, потом маска 0x0f, потом 0x33, потом 0x55 -- 4 операции вместо 8-и. Ведь на самом-то деле цель не проверить бит N-ый, а отыскать какие fk0(86 знак., 04.03.2011 13:24)
- Что за mulu? И разве в указатель на mask загружается не удвоенное число? - mazur(04.03.2011 13:22)
- Ага, что-то такое и хотел написать, но потом зацепился за макросы, а потом уже машина пришла и я побежал :-) Только там фрагмент можно на слово короче написать: ldzl,z sbrczl,2 swapah andizl,3clrzh subizl,low -ReAl-(85 знак., 05.03.2011 09:22,
)
- Супер! - leon_(28.02.2011 22:52)
- Вы знаете MAZUR Ваш код просто "убивает" вообще всякое понятие о asm. Кто Вас научил пользоваться так небрежно регистром SREG? ilyaul(639 знак., 28.02.2011 21:10)
- Уважаемый... Прочитав ваше сообщение, я надолго задумался. Отвечать вам или нет. Что вам ответить. Притом даже не "достойно ответить". Тут другое. Первое-у вас какое-то преклонение перед регистром SREG. Это говорит о шаблонности вашего мышления, mazur(564 знак., 28.02.2011 22:29)
- Вы знаете, ILYAUL, как только вы изобразите мне команды push/pop/mov применительно к AVR SREG, я публично приму лесбиянство и обрею левое яйцо. А до того, будьте так любезны, не порите хуйню, ибо в ассемблере вы не разбираетесь даже на MBedder(36 знак., 28.02.2011 21:27 - 21:31)
- Я ох..ваю, дорогая редакция... - fk0(28.02.2011 18:22)
- Если поле в 24 бита, то надо брать прямо тот БАЙТ, а котором тот бит, находится и его в том байте проверять. - Ксения(28.02.2011 16:26)
- что за бред? Просто and с маской почему не годится? - koyodza(28.02.2011 16:14)
- Это решается просто: AST(105 знак., 28.02.2011 16:13)
- Подскажите Мега1281 если включить JTAG, свободные ноги на порту F как I/O работать будут? - kiv121(10.03.2011 13:17, AVR, полностью)
- Уважаемый DIR не могли ли бы Вы по подробнее описать схему подключения LVDT и С8051F350?Заранее спасибо! - tolstiybh(26.03.2011 00:57,
, AVR, полностью)
- AVR Studio 5 beta Вл.Шарнин(269 знак., 01.03.2011 12:15, AVR, ссылка, полностью)
- Помогите найти пожалуйста микроконтроллер atmega8 низкопотребляемый, не 2.7-5.5, а меньше (например от 1.5 - 5.5) - tolstiybh(23.03.2011 18:01,
, AVR, полностью)