- проблема с 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, полностью)
- Атмеловцы как-то еба#$то реализовали режим Auto-Triggering в АЦП. Использую ATmega16U4, АЦП в режиме Auto-Triggering (запуск по OCF1B и ICF1). Все прекрасно работало до тех пор, пока не поставил в основном цикле вход в Idle Mode. Стал зараза il-2(532 знак., 11.03.2011 13:52, AVR, полностью)
- Есть контроллер AVR. Есть флешка SPI, подключенная к этому контроллеру, к разъему программирования. Если я буду писать-читать эту флешку через внешний программатор, не повредится ли память контроллера? - Ljutik1(10.03.2011 12:02, AVR, полностью)
- atmega8. Где увидеть эррату на этот кристал? Скрипач(261 знак., 13.02.2011 11:55 - 12:50, AVR, полностью)
- wins102r(4143 знак., 03.03.2011 22:44, AVR, полностью)
- Ни хрена понять не могу. То ли лыжи не едут. Уже давно использую следующие куски кода -> А сегодня не могу понять, почему не работает тот же принцип. mazur(2347 знак., 27.02.2011 11:55, AVR, полностью)
- Здравствуйте уважаемые! Собрался поковыряться с kiv121(67 знак., 28.02.2011 21:15, AVR, полностью)
- Добрый день уважаемые! roman183(380 знак., 26.02.2011 18:39, AVR, полностью)