Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 20.11.2013, 11:56  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от dosikus Посмотреть сообщение
Вот такая ж .. выходит :
Если так
Код:
  struct {
   unsigned aaa :1;
   unsigned bbb :1;
   unsigned ccc :1;
   unsigned ddd :1;
   unsigned eee :1;
   unsigned fff :1;
   unsigned ggg :1;
   unsigned hhh :1;
  }f_flag;
тогда
Код:
  f_flag.aaa = 1;
main:
INTVEC$$Limit:
    008080    CE0018         LDW       X, f_flag
    008083    01             RRWA      X, A
    008084    AA01           OR        A, #?b1
    008086    02             RLWA      X, A
    008087    CF0018         LDW       f_flag, X
  nop();
    00808A    9D             NOP
  f_flag.bbb = 1;  
    00808B    01             RRWA      X, A
    00808C    AA02           OR        A, #?b2
    00808E    02             RLWA      X, A
    00808F    CF0018         LDW       f_flag, X
  nop();  
    008092    9D             NOP
  f_flag.ccc = 1;  
    008093    01             RRWA      X, A
    008094    AA04           OR        A, #?b4
    008096    02             RLWA      X, A
    008097    CF0018         LDW       f_flag, X
  nop();  
    00809A    9D             NOP
В если так
Код:
  struct {
   uint8_t aaa :1;
   uint8_t bbb :1;
   uint8_t ccc :1;
   uint8_t ddd :1;
   uint8_t eee :1;
   uint8_t fff :1;
   uint8_t ggg :1;
   uint8_t hhh :1;
  }fflag;
тогда вот так
Код:
  fflag.aaa = 1;
    00809B    7210001A       BSET      fflag, #0
  nop();
    00809F    9D             NOP
  fflag.bbb = 1;  
    0080A0    7212001A       BSET      fflag, #1
  nop();  
    0080A4    9D             NOP
  fflag.ccc = 1;  
    0080A5    7214001A       BSET      fflag, #2
  nop();  
    0080A9    9D             NOP
ИАР 1.41
Реклама:
nahimovv вне форума  
Сказали "Спасибо" nahimovv
dosikus (20.11.2013)
Непрочитано 20.11.2013, 15:10  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
Предпочитаю строгие знаки › и ‹, чем с "равно"
А я предпочитаю "строгие" цифры - это важнее, чем знаки, которые "всё равны".
Пример:
Код:
#define ARR_LEN 100

        for (i=0; i ‹  ARR_LEN; ++i){ ... }
        for (i=1; i ‹= ARR_LEN; ++i){ ... }
а вам пришлось бы писать:
Код:
#define ARR_LEN 100

        for (i=1; i ‹ ARR_LEN+1; ++i){ ... }
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 21.11.2013, 09:34  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
Индекс удобно начинаеть с нуля. Иначе проблемы с обращениями к массивам и т.д.
Интересный подход к программированию - писать то, что удобнее, а не то, что требуется по алгоритму. Если возникают проблемы обращения к массивам, то, может, "удобнее" их не использовать !!!
Boba_spb вне форума  
Непрочитано 21.11.2013, 11:31  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Boba_spb Посмотреть сообщение
Интересный подход к программированию - писать то, что удобнее, а не то, что требуется по алгоритму.
Если меняется форма записи, то причём здесь алгоритм, если он от этого не меняется?
nahimovv вне форума  
Непрочитано 21.11.2013, 11:34  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
С другой стороны, если поменять направление счетчика сразу
Если компилятор умный, то он сам это сделает.
nahimovv вне форума  
Непрочитано 21.11.2013, 11:42  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
Приведите реальный пример кода, который требует начала с 1-го до чего-то там.
"Элементарно, Ватсон!"(С)
Массив элементов, где первые n элементов содержат служебные символы или служебную информацию не подлежащую изменению. Выталкивается , при передаче, весь массив, а изменяется лишь частично.
nahimovv вне форума  
Непрочитано 21.11.2013, 12:19  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
Я могу придумать много синтетических задачек.
Вот вам по теме!
STM8L и MT-10t7 через ДМА, первый элемент всегда содержит команду установки в нулевую позицию экрана дисплея и никогда не меняется.
nahimovv вне форума  
Непрочитано 21.11.2013, 13:31  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
Boba_spb, Алгоритмы пишут люди, и, как я уже сказал, если индекс начинается "не с нуля", то что-то не так с логикой. Ну любит компьютер что-бы числа начинались с нуля! Так он устроен, и алгоритмы к этому подгоняются часто.
Компьютер ничего не любит - он тупо выполняет команду за командой. А любовь "что-бы числа начинались с нуля! " - это бред. Посмотрите любой алгоритм сортировки массива, например. Что там с индексами массива творится ?
Boba_spb вне форума  
Непрочитано 21.11.2013, 15:10  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Кстати!

Сообщение от boydyzy Посмотреть сообщение
Если нужно бежать от MAX-1 до 0 (как обычно надо), но можно сделать в обратном порядке, то модифицируем так:
Код:
#define ARR_LEN 100

for (i=ARR_LEN - 1; i ‹ 0; i--){ ... }
Опять же, на пару тактов короче должно быть.
Та не, сразу на всю длину этой херни!
Цитата:
Могу дома проверить "в железе" на макетке.
Не, не стОит, лучше K&R почитайте.
nahimovv вне форума  
Непрочитано 21.11.2013, 18:30  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от boydyzy Посмотреть сообщение
когда вы объявляете константу и ... вычисление в момент компиляции ... по времени оно все будет одинаково выполнятся
Бог мой, что это за бред? С чего это вы решили, что константа здесь имеет хоть какое-то значение? Или понять, что на этом месте может стоять и переменная, и вызов функции, и, например, выражение присвоения - образования не хватило?
И откуда это дикое предположение, что речь шла о времени выполнения?

Сообщение от boydyzy Посмотреть сообщение
Плюс, пример странный, он от 1-цы бежит. Это само по себе странно. Индекс удобно начинаеть с нуля. Иначе проблемы с обращениями к массивам и т.д.
Для алгоритмики, не выходящей за рамки примеров из учебников, это действительно нечастый случай, однако, в жизни всё совсем иначе.

Сообщение от boydyzy Посмотреть сообщение
если индекс начинается "не с нуля", то что-то не так с логикой.
Дааа, сон разума рождает чудовищ! Индекс "начинается" с первого нужного значения, а не с вашего ограниченного понимания.

Сообщение от boydyzy Посмотреть сообщение
В подавляющем большинстве случаев стоит взглянуть на придуманный алгоритм и его доработать,
При той узости кругозора, что вы только что продемонстрировали, слова "в подавляющем большинстве случаев" - выглядят маниакальным бредом.


Сообщение от boydyzy Посмотреть сообщение
Я могу придумать много ...
Не утруждайтесь, написанного вами выше - предостаточно!
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 21.11.2013 в 18:52.
tempora вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


Часовой пояс GMT +4, время: 18:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot