29.06.2013, 22:20
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Проблема при симуляции
Сообщение от dosikus
|
Подобное еще допустимо на 8ми битках, и то с натягом .
Мало кто оценит сие. Кто выше уровнем имеет и пользует свое .
|
Я всегда предлагаю поделиться своими соображениями, оформленными в виде конкретного примера из конкретного проекта. И подскажите мне тех, кто по-вашему "выше уровнем". Чтобы я не гадал, укажите на их подходы в конкретных проектах,а то как-то не хорошо получается - сослался на "авторитет" и доволен.
Со мной такое не работает. Один уже слился, кроме болтовни ничего показать не может. Это его уровень, имеет право на существование. Мне же интересно увидеть комплексные подходы, где люди совмещали много разных вещей для реализации проекта на мк.
Я видел один такой подход в ядре модуля ввода-вывода АСУТП, написанного полностью на C++ под IAR, мне приходилось его поддерживать. Вот после поддержки того монстра я и задумался над такими вопросами, как оформление, стандартизация и пр. Тот код был не переносим под gcc.
Цитата:
|
Чем не устраивает стандартное описание бит регистров ?
|
Не совсем понял, что означает "стандартное описание бит регистров"? Приведите пример.
Цитата:
|
Модуль_регистр_бит
|
И здесь нужно пояснить что вы имели в виду (компилятор, язык, архитектура).
П.С. Вот пример того, как те, кто "выше уровнем пользуют своё": Работа с портами ввода-вывода микроконтроллеров на Си++. Я пока решил, что мой вариант для меня как-то попроще будет. Одно дело - идея, другое - конкретная реализация. Если нет конкретной реализации на некотором наборе мк, то это пока мёртвая идея. Поэтому я прошу всегда показать конкретные примеры в конкретных проектах, а не принцип. В конкретных проектах среднего уровня всегда вылезают какие-то проблемы. Если программист их не решил, то увы, пусть пробует ещё.
Последний раз редактировалось Вячеслав Мезенцев; 29.06.2013 в 22:48.
|
|
|
|
29.06.2013, 22:52
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Проблема при симуляции
Вячеслав Мезенцев, Я всегда говорил , что AVR это диагноз.
Почему бы вам не расширить кругозор?
Те же STM8 или ARM . Глядишь и осознали бы всю смехотворность своих потугов.
Примеры ? Да ради бога - вот вам выжимки из хэдеров...
Код:
|
#define TIM2_CR1_ARPE ((uint8_t)0x80) /*!‹ Auto-Reload Preload Enable mask. */
#define TIM2_CR1_OPM ((uint8_t)0x08) /*!‹ One Pulse Mode mask. */
#define TIM2_CR1_URS ((uint8_t)0x04) /*!‹ Update Request Source mask. */
#define TIM2_CR1_UDIS ((uint8_t)0x02) /*!‹ Update DIsable mask. */
#define TIM2_CR1_CEN ((uint8_t)0x01) /*!‹ Counter Enable mask. */ |
Код:
|
/******************* Bit definition for ADC_CR2 register ********************/
#define ADC_CR2_ADON ((uint32_t)0x00000001) /*!‹ A/D Converter ON / OFF */
#define ADC_CR2_CONT ((uint32_t)0x00000002) /*!‹ Continuous Conversion */
#define ADC_CR2_CAL ((uint32_t)0x00000004) /*!‹ A/D Calibration */
#define ADC_CR2_RSTCAL ((uint32_t)0x00000008) /*!‹ Reset Calibration */
#define ADC_CR2_DMA ((uint32_t)0x00000100) /*!‹ Direct Memory access mode */
#define ADC_CR2_ALIGN ((uint32_t)0x00000800) /*!‹ Data Alignment */
#define ADC_CR2_JEXTSEL ((uint32_t)0x00007000) /*!‹ JEXTSEL[2:0] bits (External event select for injected group) */
#define ADC_CR2_JEXTSEL_0 ((uint32_t)0x00001000) /*!‹ Bit 0 */
#define ADC_CR2_JEXTSEL_1 ((uint32_t)0x00002000) /*!‹ Bit 1 */
#define ADC_CR2_JEXTSEL_2 ((uint32_t)0x00004000) /*!‹ Bit 2 */
#define ADC_CR2_JEXTTRIG ((uint32_t)0x00008000) /*!‹ External Trigger Conversion mode for injected channels */
#define ADC_CR2_EXTSEL ((uint32_t)0x000E0000) /*!‹ EXTSEL[2:0] bits (External Event Select for regular group) */
#define ADC_CR2_EXTSEL_0 ((uint32_t)0x00020000) /*!‹ Bit 0 */
#define ADC_CR2_EXTSEL_1 ((uint32_t)0x00040000) /*!‹ Bit 1 */
#define ADC_CR2_EXTSEL_2 ((uint32_t)0x00080000) /*!‹ Bit 2 */
#define ADC_CR2_EXTTRIG ((uint32_t)0x00100000) /*!‹ External Trigger Conversion mode for regular channels */
#define ADC_CR2_JSWSTART ((uint32_t)0x00200000) /*!‹ Start Conversion of injected channels */
#define ADC_CR2_SWSTART ((uint32_t)0x00400000) /*!‹ Start Conversion of regular channels */
#define ADC_CR2_TSVREFE ((uint32_t)0x00800000) /*!‹ Temperature Sensor and VREFINT Enable */ |
Что касается вашего оппонента.
Слился он от того , что ни кто уже не может без смеха ваш бред воспринимать .
Я отписываюсь только ради того , что бы нубы вас за гуру не восприняли...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 29.06.2013 в 22:57.
|
|
|
|
29.06.2013, 23:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Проблема при симуляции
Сообщение от Вячеслав Мезенцев
|
Я всегда предлагаю поделиться своими соображениями, ...
|
Делиться должно быть интересно. Интереса вы, любезный, не вызвали ни как специалист, ни как человек.
Почему ни так, ни этак? Ну, это очень просто. Уровень познаний хорошо просматривается из целой серии высказываний, типа таких: - утверждения, что флаг может иметь значения, отличные от true/false
,
- утверждения, что запись обращения к битам регистров вида "TCCR1B.WGM12" невозможно реализовать стандартными средствами Си
,
- мнения о том, что битовое поле, разделенное между регистрами, представляет собою "задачу", какую не стыдно предложить оппоненту
,
- и т.д.
Уровень личных качеств также несложно оценить, как из явных высказываний: - вы не соображаете о чём пишите
- я, в отличие от вас, ...
- Если вам не понятно что я написал
- ...
так и из неявных; скажем, из того, как пример кода с "магическим числом" назван более коротким и более наглядным( ![Гонишь](images/smilies/icon_blat.gif) ), чем пример с именованной константой. Окружающим было предложено поверить, что прочтя такой "короткий" код:
Код:
|
ADMUX = BIN8(01001111); // BIN8() не зависит от уровня оптимизации
// ||||||||
// 76543210
// |||||||+- 0, rw, MUX0: -+ - Analog Channel Selection Bits
// ||||||+-- 1, rw, MUX1: |
// |||||+--- 2, rw, MUX2: |
// ||||+---- 3, rw, MUX3: |
// |||+----- 4, rw: MUX4: _|
// ||+------ 5, rw, ADLAR: - ADC Left Adjust Result
// |+------- 6, rw, REFS0: -+ - Reference Selection Bits
// +-------- 7, rw, REFS1: _| |
они по числу '01001111' сразу же поймут, что референсом служит AVCC, а входной мультиплексор работает в дифрежиме 3-2 с усилением 200 крат, а из такого "длинного" кода:
Код:
|
ADMUX = adcVRef_AVCC | adcMUX32x200; |
им это же самое понять будет труднее. Тот, кто считает, что люди проглотят такое передёргивание " либо тяжко болен, либо втайне ненавидит окружающих".
Количество грубых ошибок, нелепых утверждений и передёргиваний таково, что просто смешно полагать, что тут есть что обсуждать, и с кем обсуждать.
Если мантра " я непризнанный гений, просто, все слились" вас, любезный, успокаивает - продолжайте её слушать, но ни пошлостями, ни передёргиваниями, ни хамством вы свое реноме не исправите.
_________________________
1)
Сообщение от Вячеслав Мезенцев
|
флаг фактически равен нулю при FALSE, то может иметь значения 2, 3, 255 для TRUE.
|
2)
Сообщение от Вячеслав Мезенцев
|
Если бы можно было писать так: TCCR1B.WGM12, делая имя составным, то это уже как-то бы решало проблему, но этого нет.
|
Сообщение от Вячеслав Мезенцев
|
Либо это нестандарт, тогда программист, использующий это, сам себя наказал непереносимостью, либо мы говорим не про gcc или iar для avr.
|
3)
Сообщение от Вячеслав Мезенцев
|
Когда битовое поле состоит из набора битов, но часть из них находится в одном регистре, а другая - в другом, что вы сделаете в такой ситуации?
|
__________________
There's always more than one way to skin a cat.
|
|
|
|
30.06.2013, 00:44
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Проблема при симуляции
Цитата:
|
Я всегда говорил , что AVR это диагноз.
Почему бы вам не расширить кругозор?
|
И это ваш ответ? Не используйте, так как это диагноз? И как к вашим комментам после этого относиться?
Я специально попросил указать компилятор, язык, платформу. То, что теоретически так можно делать, не означает автоматическое удобство для конкретной архитектуры. Вы размножили таким образом пространство имён, которые должны быть где-то задокументированы и описаны, не факт что это будет удобно всё использовать на примере AVR. Я предлагаю свой подход конкретно к AVR, т.к. он является частью заготовок, привязанных к архитектуре AVR. Если посмотреть на структуру проектов, то это будет заметно.
Покажите мне пример библиотек для AVR на этой основе, чего я добиваюсь уже тут несколько страниц. Также я ещё, раз повторяю, покажите пример реального проекта средней сложности для AVR, где этот подход используется. Это нужно, чтобы видеть разнообразие таких конструкций в реальном применении и завязанных между собой.
Ещё раз повторяю и прошу ещё раз посмотреть на исходные файлы проектов, что я прикладывал. Комментирование регистров битов я делал на этапе инициализации периферии мк, во всём остальном коде такое документирование не используется. Причина такого подхода: 1) ясное понимание того, что ты настраиваешь, 2) не нужно постоянно смотреть в datasheet 3) я не видел для архитектуры AVR готовых стандартных заголовочников по типу тех, что вы привели. То, что они имеются для другой платформы не означает автоматически их удобство для AVR. Я пояснил даже почему так может быть - разные наименования регистров и перетасовывание конфигурационных битов от одной mega к другой.
Мне интересно как что-то сделано где-то в другом месте, но так как я использую AVR, предлагать сменить платформу - это неуважение и не только ко мне.
Неужели так трудно привести заголовочники и конкретные проекты с вашим "гуровским" подходом для AVR? Это ниже вашего достоинства? Или вы в своей практике с этим даже и не встречались?
tempora, когда я говорил не объяснять то, чего я не писал, своим потоком сознания, то я был уверен, что хотя бы это до вас дойдёт. Вы упорны в борбе с собой. Успехов вам в этом.
Невежество и неуважение просто поражает. Когда я пишу, что этого нет - это не означает, что этого не может быть. Это есть по умолчанию в некоторых языках типа бейсика или паскаля для AVR, к примеру, в CodeVision, но я не считаю этот вариант хорошим в плане переносимости и не принимаю такие компиляторы в расчёт. Они как бы сами по себе и крутятся в своё мире.
Это означает, что я не могу прямо сейчас взять и использовать готовое решение по типу того, что привёл dosikus. Я же объяснял, я практик. Покажите мне не потенциально возможное, а реально существующее и применяемое для AVR. То, что потенциально возможно не означает, что оно удобно везде, это умствования и причем не далёкие. Только практика показывает как тот или иной подход применим в своей сфере, нише, платформе.
Прошу, снизойдите до практики для платформы AVR. Прошу не предлагать сменить платформу только от того, что на ней что-то работает не так. Прошу быть выше моего уровня "личных качеств" и показать всё то лучшее, что вы взяли от вашего воспитания.
Очень не плохо ваш тип был описан в одном комментарии:
Цитата:
|
На самом деле вы ничего не предлагается. Вы ведете себя как Гуру, который достиг просветления и ему стали понятны какие-то более высокие материи, чем всем остальным. И куда уж нам тут всем, до Вас - небожителей.
Вместо того, чтобы привести четкий и понятный код, хоть на Си, хоть на ассемблере - и сказать: "Я считаю, что так правильно потому-то и потому-то" (ведь каждый может иметь мнение и опыт, на котором оно основано), вы пишите какими-то намеками, недомолвками и т.п.
Из чего напрашивается вывод - либо вы сами не знаете, как... Либо вы боитесь показать тот код, который считаете правильным, поскольку он может быть подвергнут критике.
|
Повторяю ещё раз: если потенциально возможное не реализовано в реально существующем, то для доказательства реальной применимости нужно проделать очень большую работу. Могу показать пример, где автор потенциально возможного для доказательства реальной применимости начал реализовывать что-то реальное, что действительно работало: AvrProjects. Там нет проектов средней сложности, скорее тесты возможных применений. Но дело заглохло несколько лет назад.
Поэтому я скептически так и к вашим советам настроен, вы пытаетесь что-то доказать не ударив пальцем об палец. Я же прошу указать на проделанную работу. Если вы не делали такой работы, а только умствовали он ней или сделали то, что вам было удобно и не более того, то вам остаётся лишь стебаться и словоблудить о сферических конях в вакууме, пусть даже и возможных.
Есть такой тип людей, которые не хотят затрачивать времени на тестирование каких-то своих идей, они вбрасывают их в массы, кто-то попробует реализовать, получилось - хорошо, не получилось - ещё лучше, никаких затрат.
Последний раз редактировалось Вячеслав Мезенцев; 30.06.2013 в 00:48.
|
|
|
|
30.06.2013, 00:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Проблема при симуляции
Сообщение от Вячеслав Мезенцев
|
хотя бы это до вас дойдёт
|
Хамство, снова хамство. Пьянит осознание собственной безнаказанности?
__________________
There's always more than one way to skin a cat.
|
|
|
|
30.06.2013, 01:32
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Проблема при симуляции
Цитата:
|
Хамство, снова хамство. Пьянит осознание собственной безнаказанности?
|
Больны, озабоченны наказаниями? Детство прошло не очень удачно и травмировало психику? Вы бы подумали сначала о том, почему везде вписаны мои координаты (комментируете, не смотря в проекты, что тоже характеризует), а от вас тут есть только анонимоус.
readme.txt
|
|
|
|
30.06.2013, 01:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Проблема при симуляции
Вы "как бы не замечаете", что вас все дружно внесли в список "редиректа"? ![Рот до ушей](images/smilies/icon_doushei.gif) Разумеется - хочется же сохранить лицо. Однако, поздно.
В сущности, вы уже получили ответ на свои претензии на новизну и "единственно-верность" своего учения:
Сообщение от Halex07
|
Конечно, на первоначальном этапе это подспорье, но потом, поверьте опыту - начинает напрягать... Для себя и спецов - только необходимые комменты, подробное же
разжевывание - только на этапе освоения и обучения.
|
Сообщение от Halex07
|
еще раз повторюсь - ничего супернового и сногсшибательного в программировании Вы не изобрели...
какое то удобство в вашем подходе к описанию битов есть, особенно для начинающих. Но, впихивать такое в каждый проект - извините.
чтож разрисуйте в том же стиле 32-битный регистр и почувствуйте "полное превосходство" вашего метода.
|
Сообщение от dosikus
|
Подобное еще допустимо на 8ми битках, и то с натягом. ... вы мне напоминаете разработчиков ДРАКОНА , стараясь упростить создаете монстров.
|
Сообщение от dosikus
|
ни кто уже не может без смеха ваш бред воспринимать. Я отписываюсь только ради того , что бы нубы вас за гуру не восприняли...
|
Сообщение от tempora
|
Количество грубых ошибок, нелепых утверждений и передёргиваний таково, что просто смешно полагать, что тут есть что обсуждать, и с кем обсуждать.
|
Как говорится, сначала вы работали на репутацию, теперь она работает на вас.
__________________
There's always more than one way to skin a cat.
|
|
|
|
30.06.2013, 08:13
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Проблема при симуляции
Так, я смотрю пока я на даче грядки полол страсти не улеглись...
Хотите продолжить взаимное измерение толщины... "фломастеров" - ВОТ ТОПИК - там и меряйтесь. К Протеусу и конкретно к проблемам симуляции ваш спор никакого отношения не имеет, поэтому тему прикрываю.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:57.
|
|