Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

Мурик писал(а):Как считаете не слишком много кода чтобы изменить стояние вывода? По нормальному это требует пары асм инструкций.
много для чего? для кого? в каком случае? требует от кого? кто требует? для чего требует? по-нормальному - это как? кто устанавливает нормы? что будет за нарушение этих норм?

в винде, чтобы выключить компьютер, запускается 100500 процессов, которые жрут гигабайты памяти и работают больше 30 секунд - это нормально, хотя формально выключить питание можно в "пару ассемблерных команд".

Общаемся культурно и без лишних эмоций. Fakir.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

Сообщение Мурик »

ARV писал(а):по-нормальному - это как?
Для AVR примерно так PORTA |= 1<<4;
ARV писал(а):кто устанавливает нормы?
Здравый смысл!
ARV писал(а):что будет за нарушение этих норм?
Необоснованное увеличение объема прошивки.
ARV писал(а):в винде, чтобы выключить компьютер, запускается 100500 процессов
Не нужно сравнивать простейший AVR и комп с гигагерцовыми многоядерными процами, с терабайтными винтами, гигабайтными оперативками.
ARV писал(а):хотя формально выключить питание можно в "пару ассемблерных команд".
Напишите их. Учите, нужно корректно завершить все процессы (они могут сохранять настройки при завершении). При этом процесс может сообщить о невозможности завершения и отключение нужно отложить или остановить. Кроме этого нужно скинуть на диск кеш записи из оперативки, нужно перевести все устройства которые это поддерживают в режим пониженного потребления и много чего еще. Сможете это сделать несколькими асм командами? :))) :facepalm:
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Вообще-то меня не начинка ардуино IDE на данный момент интересовала, а потроха ассемблера.
8)
Чего в IDE натыкано - меня вполне устраивает (в отличии от некоторых),
а вот "особенности" директив avrasm2/c51asm от атмела как-то смуторно представляются...
предложил прояснить вопрос...
А в ответ... крупноформатный флуд...
:wink:

Насчет "супербольшой и неоптимальной"...
функция digitalWrite работает не только относительно порта ввода/вывода.
Если целью является бит/флаг регистра управления (в том числе таймерами, сбросом флагов или еще чем) то там простым
"...
Для AVR примерно так PORTA |= 1<<4
..."
не удастся отделаться.
Да и не все РСФ обрабатываются одними и теми же командами.
В том числе включая и те, что доступны только как ОЗУ.
А функция - ОДНА на все случаи.
8)
Таки немного ошибся - смешал вместе и digitalWrite(pin, value) и bitWrite(x, n, b)...
Хотя в принципе не дело пользователя копаться в устройстве функций компилятора...
:?
Ну и прячьте уж те "портянки" под спойлер пожалуйста - собственно зачем так неаккуратно расходовать место...
Понятно, что нервишки барахлят... Но надо уж как-то сдерживаться.
:tea:
Последний раз редактировалось BOB51 Пт июн 05, 2020 18:09:25, всего редактировалось 1 раз.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

[uquote="BOB51",url="/forum/viewtopic.php?p=3851097#p3851097"]Для AVR примерно так PORTA |= 1<<4
..."
не удастся отделаться.
Да и не все РСФ обрабатываются одними и теми же командами.
В том числе включая и те, что доступны только как ОЗУ.[/uquote]Удастся. Зырь сюды!

Код: Выделить всё

//PORTA |= 1<<4;
        SBI     0x1B, 0x04
//UCSR1C |= 1<<UMSEL1;
        LDS     R16, 157
        ORI     R16, 0x40
        STS     157, R16
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

Мурик писал(а):Здравый смысл!
это ваша фамилия или он вас уполномочил от его имени выступать?

с чего вы взяли, что за вами последне слово в этом самом "здравом смысле"? почему мнение других вы сразу считаете не здравым? никогда не сталкивались с тем, что одному кажется наредкость неразумным, то другому представляется в высшей степени целесообразным? например, культурист качает мышцу, а шахматитс учит этюды - у кого здравый смысл преобладает?

как вы надоели со своими догмами!
Мурик писал(а):Необоснованное увеличение объема прошивки
необоснованная трата государственных средств - это преступление. а необоснованная трата ресурсов МК - это какая статья какого кодекса, напомните? или снова ВАМ В ГОЛОВУ МОЧА ударила, и вы теперь называете "запретным" любое, что не под вашу дудку слпясано?!
Мурик писал(а):Не нужно сравнивать простейший AVR и комп с гигагерцовыми многоядерными процами, с терабайтными винтами, гигабайтными оперативками.
а я сравниваю ПОДХОДЫ. а подходы всегда незыблемы: если удовлетворяет требованиям в работе, значит, сделано правильно. и не надо придумывать свои критерии правильнсти. это перед своим субподрядчиком будете умничать, а тут не надо, вам никто ничем не обязан.
Мурик писал(а):Сможете это сделать несколькими асм командами?
а у нас соревнование на минимального объема код? вы не попутали ничего, уважаемый?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

VladislavS
Это верно касательно ассемблера и только для записи фиксированного значения в фиксированный бит порта.
Однако...

Порты в адуринке не только из "стандартного ряда" - использующие команду CBI $P,b/SBI $P,b
В комплекте платформ имеются и экземпляры, где порт отображен в области ОЗУ (за пределами адресного поля 1-31)...
Обращение к ним должно выполняться иначе.
Второе digitalWrite(pin, value) выполняет как запись (1) так и сброс выбранного бита (0).
Третье... Это порты с комбинированной настройкой выводов - цифровой обмен или "альтернатива" одновременно.
А там уже дополнительные настройки необходимы и учет одновременно выполняемых функций.
Это не говоря о том, что аналоговый ряд может использоваться и как цифровой.
Так что "навороченность" функционала вполне объяснима.
Но мне как пользователю, работающему с адуринкой под Си/С++ вникать в то, как устроены функции совершенно без надобности.
Необходимо лишь знать что применить, чего правильно функции скормить и и что в результате получим.
8)
Ежли захочется "садомазохизьму" - тогда гораздо приятнее под ассемблером поизвращаться.
:beer:

ARV
Мурик попытался втянуть пользователя в обсуждение тоонкостей построения компилятора...
И... Чую... что-то не то вытащил...
Ибо не может бысть digitalWrite(pin, value) при таймере - она обрабатывает только порты выводов, но не настройки других ресурсов - в случае доступа к ОЗУ рассматривается bitWrite(x, n, b)...
А лезть в устройство IDE мне как-то уровень пока не позволяет...
:(
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Котуинко

Сообщение Reflector »

[uquote="BOB51",url="/forum/viewtopic.php?p=3851137#p3851137"]Ибо не может бысть digitalWrite(pin, value) при таймере - она обрабатывает только порты выводов, но не настройки других ресурсов[/uquote]
Там еще есть analogWrite(), который обычно шимит. Если после него для того же пина вызывать digitalWrite, то придется сначала отключить PWM или DAС, смотря о каких мк идет речь.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

BOB51 писал(а):Порты в адуринке не только из "стандартного ряда" - использующие команду CBI $P,b/SBI $P,b
В комплекте платформ имеются и экземпляры, где порт отображен в области ОЗУ (за пределами адресного поля 1-31)...
Как раз доступ к такому регистру я вам и показал. Подставьте вместо UCSR1C ваш нестандартный PORTZ.
BOB51 писал(а):Обращение к ним должно выполняться иначе.
Только на асм. На C/C++ одинаково.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

Сообщение Мурик »

BOB51 писал(а):Ибо не может бысть digitalWrite(pin, value) при таймере - она обрабатывает только порты
У вас есть ArduinoIDE? Можете посмотреть как устроена функция digitalWrite.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

Мурик писал(а):Можете посмотреть как устроена функция digitalWrite
зачем?!

вот тут в теме про stm32 упоминают какие-то кубы... вопрос: тому, кто пользуется этими кубами, зачем смотреть, как они устроены? разве вы не понимаете, что смысл использования этих кубов именно в том, чтобы не знать (или хотя бы как можно меньше знать), как они устроены?! если смотреть в их устройство, и тем паче вникать в его работу, отпадает сам смысл применять этот куб, т.е. вместо 3 кликов мышкой писать ручками небольшие простынки кода, сверяясь поминутно с даташитом и эратой...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3851180#p3851180"]вопрос: тому, кто пользуется этими кубами, зачем смотреть, как они устроены?[/uquote]Чтобы знать чем вы жертвуете, используя их.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

Сообщение Мурик »

ARV писал(а):зачем?!
Я писал не вам. Не нужно отвечать за других.
ARV писал(а):вот тут в теме про stm32 упоминают какие-то кубы
Я им не пользуюсь как кодогенератором. Использую только чтобы быстро определить какая периферия с какими выводами связана или какие должны без значения умножителей и делителей системы тактирования. Это проще и быстрее чем смотреть даташит.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3851146#p3851146"]
BOB51 писал(а):Порты в адуринке не только из "стандартного ряда" - использующие команду CBI $P,b/SBI $P,b
В комплекте платформ имеются и экземпляры, где порт отображен в области ОЗУ (за пределами адресного поля 1-31)...
Как раз доступ к такому регистру я вам и показал. Подставьте вместо UCSR1C ваш нестандартный PORTZ.
BOB51 писал(а):Обращение к ним должно выполняться иначе.
Только на асм. На C/C++ одинаково.[/uquote]
Это с учетом того, что корректное обращение должно быть name_port+0x20 ??
Ежли уж публиковать, то хоть в соответствии с правилами ассемблера...
Ежли пример Сишный - там только УСТАНОВКА бита в 1.
Следовательно еще и установку в 0 добавляем, затем анализ условия и....
8)
Мурик писал(а):
BOB51 писал(а):Ибо не может бысть digitalWrite(pin, value) при таймере - она обрабатывает только порты
У вас есть ArduinoIDE? Можете посмотреть как устроена функция digitalWrite.
Я ж уже говорил - не имею достаточной подготовки дабы аргументированно чего перепроверить на уровне анализа функционала компилятора.
Тем более, что содержимое материала по "скрытому каталогу" к анализированию превышает 3,98 гигабайта (моя 1.8.9 с установленными дополнениями).
Да и мне собственно все равно - чего там и как обрабатывается.
:sleep:
А вот на мои вопросы по компилятору ассемблера (avrasm2) Вы так и не ответили прикрываясь тем, что меня вобщем-то и не интересует на данный момент, хотя и заявляли, что ассемблер для АВР превосходно знаете!
:tea:
Аватара пользователя
Klekoche
Родился
Сообщения: 16
Зарегистрирован: Сб окт 27, 2018 12:54:14

Re: Котуинко

Сообщение Klekoche »

[uquote="BOB51",url="/forum/viewtopic.php?p=3851189#p3851189"]Вы так и не ответили...
хотя и заявляли, что ассемблер для АВР превосходно знаете!
:tea:[/uquote] В романе Марка Твена "Янки при дворе короля Артура" волшебник Мерлин предсказывал, какая погода будет в этот же день, ровно через 100 лет.
Когда янки попросил Мерлина сказать, какая погода будет не через 100 лет, а завтра, тот ответил, что такими мелочами он не занимается. :))
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

Сообщение Мурик »

BOB51 писал(а):хотя и заявляли, что ассемблер для АВР превосходно знаете!
Вы меня с кем-то перепутали. Я на ЯВУ пишу.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

ПЕЧАЛЬКА...
Придется снова экспериментами заниматься...
:(
Жаль подходящего проектика нету, чтоб потренироваться с пользой...
А случайно набранный "коктейль" фрагментов без конкретной задачи только ради теста меня уже один разок подвел...
https://radiokot.ru/forum/viewtopic.php ... 9#p3839169
и
https://radiokot.ru/forum/viewtopic.php ... 3#p3840103
:evil:
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Котуинко

Сообщение VladislavS »

[uquote="BOB51",url="/forum/viewtopic.php?p=3851189#p3851189"]Это с учетом того, что корректное обращение должно быть name_port+0x20 ??[/uquote]Да.

[uquote="BOB51",url="/forum/viewtopic.php?p=3851189#p3851189"]Ежли уж публиковать, то хоть в соответствии с правилами ассемблера...[/uquote]Чё?

[uquote="BOB51",url="/forum/viewtopic.php?p=3851189#p3851189"]Ежли пример Сишный - там только УСТАНОВКА бита в 1.
Следовательно еще и установку в 0 добавляем, затем анализ условия и....[/uquote]Я не привык по два раза очевидные вещи объяснять. Но для особо одарённых в третий раз пишу. Смотри и не говори, что не видел. Это будет последний раз.Изображение

Код: Выделить всё

//void main()
main:
//{
//  PORTA |= 1<<4;
        SBI     0x1B, 0x04

//  PORTA &= ~(1<<4);
        CBI     0x1B, 0x04

//  PORTF |= 1<<4;
        LDS     R16, 98
        ORI     R16, 0x10
        STS     98, R16

//  PORTF &= ~(1<<4);   
        LDS     R16, 98
        ANDI    R16, 0xEF
        STS     98, R16

//  if(PORTA & (1<<4)) PORTB |=1<<4; else PORTB &=~(1<<4);
        SBIS    0x1B, 0x04
        RJMP    ??main_0
        SBI     0x18, 0x04
        RJMP    ??main_1
??main_0:
        CBI     0x18, 0x04

//  if(PORTF & (1<<4)) PORTC |=1<<4; else PORTC &=~(1<<4);
??main_1:
        LDS     R16, _A_PORTF
        SBRS    R16, 4
        RJMP    ??main_2
        SBI     0x15, 0x04
        RET
??main_2:
        CBI     0x15, 0x04
//}
        RET
Dly_debilov.png
(32.29 КБ) 422 скачивания
Добавлено after 30 minutes 16 seconds:
Боюсь даже представить, что будет с неокрепшим сознанием при виде листинга вот этого кода :)

Код: Выделить всё

#include <ioavr.h>

void main()
{
  PORTA_Bit4 = !PINF_Bit4;
}
Листинг

Код: Выделить всё

//void main()
main:
//{
//  PORTA_Bit4 = !PINF_Bit4;
        IN      R16, 0x00
        SBRS    R16, 4
        SBI     0x1B, 0x04
??main_0:
        SBRC    R16, 4
        CBI     0x1B, 0x04
//}
Аватара пользователя
Klekoche
Родился
Сообщения: 16
Зарегистрирован: Сб окт 27, 2018 12:54:14

Котуинко

Сообщение Klekoche »

[uquote="Мурик",url="/forum/viewtopic.php?p=3851210#p3851210"]Вы меня с кем-то перепутали. Я на ЯВУ пишу.[/uquote]

Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3851181#p3851181"]Чтобы знать чем вы жертвуете, используя их.[/uquote]с какой целью это надо вам знать? мазохист?

Добавлено after 2 minutes 57 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3851183#p3851183"]Я писал не вам. Не нужно отвечать за других.[/uquote]
зато я вам писал, вас спрашивал. и за себя можете смело отвечать.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
aen
Модератор
Сообщения: 11940
Зарегистрирован: Пт апр 28, 2006 15:26:07
Откуда: Россия.
Контактная информация:

Котуинко

Сообщение aen »

Экскурс в историю.
(Что бы не было недоуменных вопросов: "Почему у кого то пропала кнопка?")

Лет 20 - 25 назад, как и сейчас на форуме было три группы программистов. Первые хвалили AVR, вторые PIC. Из них некоторые делали что то на этих AVR и PIC, а третья группа ничего не делала, (вероятно виду своей неспособности), а только спорила, что лучше, AVR или PIC.
Прошло 20 лет.
Семейство МК увеличилось, но количество тех, кто что то делает и применяет то, что или им доступно, или то, что они считают оптимальным для конкретной задачи, осталось прежним, а количество тех, кто способен только рассуждать, на каком МК лучше мигать светодиодом, разрослось в геометрической прогрессии из за этого увеличения семейства МК.
При этом третья группа превратились просто в какую то стаю троллей с повышенным самомнением считающих, что они тут самые важные, а модераторы должны следовать их указаниям, поэтому жмут на кнопку "жалоба" указывая, кого конкретно нужно убрать из темы, что бы не мешали им троллить, а когда модератор посчитав, что жалоба необоснованна и закрывает её, решают уже потролллить модератора, нажимая на жалобу по несколько десятков раз.

У некоторых, из этой третьей группы я временно в этом разделе кнопку "жалоба" отключил.
Вероятно, для сохранения баланса, ряды этой третьей группы придется еще и прореживать.
Ответить

Вернуться в «Разные вопросы по МК»