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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Мигание светодиодом :)

Непрочитано 03.12.2011, 16:55  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от alvadep Посмотреть сообщение
на столе, это не значит что оно будет работать в других условиях.
И на столе, и в других разумных условиях всё прекрасно и стабильно работает. Конечно, в условиях сильных электромагнитных помех, отвратительного питания, длинных соединительных проводов и емкостных или повышенных нагрузок на порты стоит подстраховаться. Но в подавляющем большинстве случаев (вроде рассматриваемого здесь) можете не опасаться, проверено.

Сообщение от alvadep Посмотреть сообщение
команды "BSF PORT" и "BCF PORT" однозначно влияют на указанный разряд.
На указанный-то влияет, а что происходит с остальными? Если не важно, и к порту подключен только один светодиод, можно и проще сделать, безо всяких "ксоров". Например, для того же подключения к RB0:

PHP код:
MAIN incf LED, W   
      movwf LED   
      movwf PORTB   
      goto MAIN 
Реклама:

Последний раз редактировалось RECTO; 03.12.2011 в 17:19.
RECTO вне форума  
Непрочитано 03.12.2011, 17:20  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сложно так потому, что светодиодов много, и источники обновления для других светодиодов тоже разные.
Сообщение от RECTO Посмотреть сообщение
Скажу по секрету: хотя Вы здесь и используете дополнительную переменную, которая "всегда даёт 100% правильный результат", стабильность работы в данном случае всё равно не обеспечена (чем нас здесь так пугает alvadep). Потому что команды "BSF PORT" и "BCF PORT" тоже работают по принципу "чтение-модификация-запись".
Откуда такая информация? Не то чтоб не верю, просто мнения разделились...

Последний раз редактировалось Slava-martyn; 03.12.2011 в 17:23.
Slava-martyn вне форума  
Непрочитано 03.12.2011, 17:34  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от RECTO Посмотреть сообщение
Скажу по секрету: хотя Вы здесь и используете дополнительную переменную, которая "всегда даёт 100% правильный результат",

И где вы там увидели применение фантомного регистра???
Скажу по секрету: andwf portХ,f , iorwf portХ,f и xorwf portb,f - тоже RMW... в отличие от movwf ...
st_1 вне форума  
Непрочитано 03.12.2011, 17:43  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Откуда такая информация?
http://www.piclist.com/techref/readmodwrite.htm
http://www.microchip.su/showthread.php?t=11385&page=3
st_1 вне форума  
Непрочитано 03.12.2011, 17:44  
XoDoK11
Гражданин KAZUS.RUN
 
Аватар для XoDoK11
 
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
XoDoK11 на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от RECTO Посмотреть сообщение
команды "BSF PORT" и "BCF PORT" тоже работают по принципу "чтение-модификация-запись".
Поэтому нужно делать BSF BCF байта и выводить байт в порт.
XoDoK11 вне форума  
Непрочитано 03.12.2011, 17:45  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Сложно так потому, что светодиодов много, и источники обновления для других светодиодов тоже разные.
Понятно. Тогда проще (и надежнее! )можно было сделать так:

PHP код:
MAIN movlw 0x01      ; Задаем бит, который инвертируем.
      xorwf LED, W    ; Модификация значения переменной, хранящей состояние порта D
      movwf LED      ; Сохраняем модифицированное значение переменной.
      movwf PORTD    ; Запись в порт.
      goto MAIN        ; Возврат на начало цикла. 

Сообщение от Slava-martyn Посмотреть сообщение
Откуда такая информация? Не то чтоб не верю, просто мнения разделились...
Из даташита. Читайте раздел "Порты ввода/вывода".
А где мнения разделились? Кто-то утверждает, что BSF и BCF работают не по принципу "чтение/модификация/запись"?
RECTO вне форума  
Непрочитано 03.12.2011, 17:54  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от st_1 Посмотреть сообщение
И где вы там увидели применение фантомного регистра???
Насколько я понял, переменная "LED" в программе Slava-martyn - это и есть то, что Вы называете "фантомным портом". Т.е. хранит текущее значение порта. Только использовался он у него несколько странно...

Сообщение от st_1 Посмотреть сообщение
Скажу по секрету: andwf portХ,f , iorwf portХ,f и xorwf portb,f - тоже RMW... в отличие от movwf ...
Разумеется.

Последний раз редактировалось RECTO; 03.12.2011 в 17:58.
RECTO вне форума  
Непрочитано 03.12.2011, 18:03  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от RECTO Посмотреть сообщение
Насколько я понял, переменная "LED" в программе Slava-martyn - это и есть то, что Вы называете "фантомным портом". Т.е. хранит текущее значение порта. Только использовался он у него несколько странно...
А что тут странного???
Типичное применение битового флага... бита, а не порта... есть разница???
st_1 вне форума  
Непрочитано 03.12.2011, 18:33  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от st_1 Посмотреть сообщение
А что тут странного???
Типичное применение битового флага... бита, а не порта... есть разница???
Очень усложнено. Зачем-то два раза идет проверка бита, когда можно сразу же записывать в порт эту переменную целиком, поскольку в ней хранятся выходные значения порта...
К тому же, автор говорит, что там у него несколько светодиодов подключено. И что, для каждого по две проверки делать???
RECTO вне форума  
Непрочитано 03.12.2011, 18:49  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
просто мнения разделились...
Да нифига они не разделились... каждый "музыкант играет так, как может"...
Ещё раз... на пальцах...
Если у вас нет последовательных операций вывода (один-два NOP'a выручает), ёмкостной нагрузки, перегруза по выходному току и длинных линий по выходу (межблочное соединение, для примера, или длинные проводники на плате), то можете использовать все битовые и байтовые операции без ограничений... Но... в реальной жизни, в реальных конструкциях, существуют и длинные проводники, и подключение затворов мощных полевиков, не говоря уже о подключении семисегментных индикаторов без ключей, и т.д. ... И любая, случайная, помеха, в сочетании с RMW, приведёт к непредсказуемому результату... И только применение "фантомного регистра" с применением MOVWF даст 100% правильный результат, т.к. нет RMW с портом...

Последний раз редактировалось st_1; 03.12.2011 в 18:53.
st_1 вне форума  
Сказали "Спасибо" st_1
Slava-martyn (03.12.2011)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное мигание светодиода Yuyukos Источники питания и свет 2 05.10.2010 23:08
Как изготовить наклейку, подсвечиваемую светодиодом? Savrik Делимся опытом 8 30.03.2010 10:20
мигание цифры на LCD begun Микроконтроллеры, АЦП, память и т.д 8 15.03.2010 23:28
плавное мигание светодиодов Stanislav2002 Источники питания и свет 2 31.08.2005 11:04


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.