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

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

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

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

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

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

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

 
Опции темы

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

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

Сообщение от RECTO Посмотреть сообщение
movlw 1
xorwf PORTB, f
Должно подойти, проц PIC16F877A, только у меня там задержки нет.
Реклама:
Slava-martyn вне форума  
Непрочитано 03.12.2011, 11:57  
kittec
Гражданин KAZUS.RUN
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Должно подойти, проц PIC16F877A, только у меня там задержки нет.
Да, без задержки он будет красиво мигать.
kittec вне форума  
Непрочитано 03.12.2011, 12:17  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,009
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от kittec Посмотреть сообщение
И эта команда была и есть во всех АВР, и "старых" и "новых".
учите матчасть, вьюнош!
сравните м8 и м88, s2313 и t2313, напишите отчет, огласите нам и приходите на собеседование
(подсказка - на телесиськах надцать лет тому мы с AVR/Mbedder-om приводили список)
jump вне форума  
Сказали "Спасибо" jump
lsa (03.12.2011)
Непрочитано 03.12.2011, 12:22  
lsa
Почётный гражданин KAZUS.RUN
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,479
Сказал спасибо: 3,193
Сказали Спасибо 2,982 раз(а) в 682 сообщении(ях)
lsa на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от kittec Посмотреть сообщение
И эта команда была и есть во всех АВР, и "старых" и "новых".
Команда SBI есть, но во многих новых AVR РАБОТАЕТ эта команда.
В старых (AT90S2313) PINx только для чтения

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

Сообщение от alvadep Посмотреть сообщение
В выходной регистр RB0 записан 0. При чтении RB0 (как бы не был настроен порт, читаем с пина, а не с регистра), мы ожидает там 0, но прошла помеха и мы считали 1. Теперь инвертируем и получаем тоже состояние, что и было. И такие случаи не редки.
Уточню, пожалуй... Т. к. сей вопрос есть "тайна за семью печатями" даже не для начинающих...
В Микрочиповской апноте чётко сказано... бесовство с RMW возникает в случаях: повышенная ёмкость нагрузки и/или повышенная нагрузка на пин по току, когда уже не выдерживается текущее состояние пина, по причине конечного сопротивления его выходного каскада... Если эти два фактора нивелированы, то никаких козней с RMW не возникает... Т.е. если не махать ногами на максимальной частоте (сказывается собственная ёмкость пина, монтажа и нагрузки) и не грузить пин чрезмерно, то всё работает как надо...
Использование фантомного порта (дополнительной переменной) всегда даёт 100% правильный результат (не забывая про атомарность)...
st_1 вне форума  
Сказали "Спасибо" st_1
alvadep (03.12.2011)
Непрочитано 03.12.2011, 12:48  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

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

Получилось!

PHP код:
MAIN                        ; Метка для перехода
            ; Инверсия переменной D0
    MOVLW        B'00000001'    ; Загрузить B'00001000' в регистр W
    XORWF        LED,f        ; Побитное "исключающее ИЛИ" переменной и W
    BTFSC        LED,D0
    BSF            PORTD,0        ; Включить светодиод D1
    BTFSS        LED,D0
    BCF            PORTD,0        ; Выключить светодиод D1
    GOTO        MAIN        ; Цикл MAIN 
Slava-martyn вне форума  
Непрочитано 03.12.2011, 15:14  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от alvadep Посмотреть сообщение
А чем порт В отличается от порта А?
В серии 16Fххх RA4 имеет выход с открытым стоком. То есть, если в выходную защелку этого разряда записана "1", и линия сконфигурирована на выход, то выход имеет высокоомное состояние. И тогда вполне возможна ситуация, которую Вы описывали.

Сообщение от alvadep Посмотреть сообщение
Тут дело не в смене конфигурации. Пример. В выходной регистр RB0 записан 0. При чтении RB0 (как бы не был настроен порт, читаем с пина, а не с регистра), мы ожидает там 0, но прошла помеха и мы считали 1.
Какая помеха, у Вас ножка МК стабильно на "земле" сидит, когда в выходной регистр записан 0.

Сообщение от alvadep Посмотреть сообщение
Теперь инвертируем и получаем тоже состояние, что и было. И такие случаи не редки.
Мильён раз так уже делал, всё работает стабильно. Конечно, нужно внимательно следить за тем, про что уже здесь говорили. Во-первых, при переконфигурации порта смотреть, чтобы на выходе не оказалось случайных значений. И во-вторых, не нагружать порты.
RECTO вне форума  
Непрочитано 03.12.2011, 15:28  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Получилось!

PHP код:
MAIN                        ; Метка для перехода
            ; Инверсия переменной D0
    MOVLW        B'00000001'    ; Загрузить B'00001000' в регистр W
    XORWF        LED,f        ; Побитное "исключающее ИЛИ" переменной и W
    BTFSC        LED,D0
    BSF            PORTD,0        ; Включить светодиод D1
    BTFSS        LED,D0
    BCF            PORTD,0        ; Выключить светодиод D1
    GOTO        MAIN        ; Цикл MAIN 
А зачем так сложно, двумя командами сделать не захотели?

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

Вывод - "XORWF PORTD, F" был бы ничуть не хуже, но зато как проще!

Последний раз редактировалось RECTO; 03.12.2011 в 15:36.
RECTO вне форума  
Непрочитано 03.12.2011, 16:33  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от RECTO Посмотреть сообщение
чем нас здесь так пугает alvadep
Я ни кого не пугаю, просто пытаюсь предупредить.

Цитата:
Мильён раз так уже делал, всё работает стабильно
на столе, это не значит что оно будет работать в других условиях.

Цитата:
Какая помеха, у Вас ножка МК стабильно на "земле" сидит, когда в выходной регистр записан 0.
сопротивление открытого ключа имеет конечное значение.

Цитата:
Потому что команды "BSF PORT" и "BCF PORT" тоже работают по принципу "чтение-модификация-запись".
команды "BSF PORT" и "BCF PORT" однозначно влияют на указанный разряд.
alvadep вне форума  
 
Опции темы

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

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.