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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

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

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

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

Для Slava-martyn наши рассуждения не понадобятся, у него PIC.
lsa вне форума  
Непрочитано 03.12.2011, 12:41  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
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.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
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,667
Сказал спасибо: 74
Сказали Спасибо 1,802 раз(а) в 654 сообщении(ях)
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,667
Сказал спасибо: 74
Сказали Спасибо 1,802 раз(а) в 654 сообщении(ях)
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.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
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, время: 14:19.


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