Главная arrow Форум  
02.05.2024 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Форум ARV Research
Добро пожаловать, Гость
Пожалуйста Вход или Регистрация.
Забыли пароль?
ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ (1 просматривает)
_GEN_GOTOBOTTOM Ответить

TOPIC: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ

#6377
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 03.04.2011 05:39 Репутация: 0  
Порт PB.7 ведь в индикации не задействован,а он зачем-то постоянно в 0 сбрасывается.

#define MASKB 0x80 //0b 1000 0000


PORTB = (PORTB & ~MASKB ) | ((SCR[pos] & MASKB ) >> 6)

допустим состояние моего порта должно быть 0b 1010 10х1 , х - не важен получим следующее
PORTB= (0b101010х1 & 0b01111111 ) | ((0bxxxxxxxx & 0b10000000)>>6 )
следовательно
PORTB= (0b001010х1) | (0b000000x0)
следовательно
PORTB=0b001010x1 //старший бит изуродован.

чего-то не соображу,как не трогать PB.7?(в переменную чего-то не хочется старое значение записывать)

Содержимое поста отредактировано: vek, в: 03.04.2011 08:02
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6379
ARV (Администратор)
Администратор
Постов: 2386
graph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 03.04.2011 10:05 Репутация: 176  
прочтите еще разик смысл MASK: единичными битами отмечаются ИЗМЕНЯЕМЫЕ ИНДИКАЦИЕЙ биты порта, нулями - СОХРАНЯЕМЫЕ.
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6380
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 03.04.2011 12:16 Репутация: 0  
Я похоже понял как пользоваться масками...Но пример в вашей статье несходится.
...А ошибка в статье исключена?
мне кажется что так неверно:
#define MASKB 0x80 //0b 1000 0000
PORTB = (PORTB & ~MASKB ) | ((SCR[pos] & MASKB ) >> 6);

А когда я делаю так то вроде все перестает смущщать:
PORTB = (PORTB & ~(MASKB>>6) ) | ((SCR[pos] & MASKB ) >> 6)
Потому что если делать как в статье,то начинаются проблемы со старшим разрядом PB7
(он в 0 постоянно сбрасывается) и проблемы с выдергиваемым из SCR[pos] битом
(ногу PB1 можно будет установить только в 1,а в 0 никак не сбросишь).

Или я опять чего-то недопонял?

Содержимое поста отредактировано: vek, в: 03.04.2011 15:07
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6384
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 04.04.2011 06:57 Репутация: 0  
#define MASKD 0x37
#define MASKB 0x80
#define MASKC 0x48 // вроде должно быть 0х41 ???

Ранее мы выводили символ в единственный порт ROWS, теперь же эта процедура разделится на три части:

PORTD = (PORTD & ~MASKD) | (SCR[pos] & MASKD);
PORTB = (PORTB & ~MASKB ) | ((SCR[pos] & MASKB ) >> 6);

PORTC = (PORTC & ~MASKC) | // и тут непонятки не правильнее ли ~(0х41)
((SCR[pos] & _BV(6)) |
(((SCR[pos] & _BV(3)) >> 3);
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6390
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 06.04.2011 01:09 Репутация: 0  
Маски тут нужны для того что-бы незадействованые ноги не трогать?
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6391
ARV (Администратор)
Администратор
Постов: 2386
graph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 06.04.2011 08:35 Репутация: 176  
vek писал(а):
Маски тут нужны для того что-бы незадействованые ноги не трогать?да, и обнулять задействованные
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6395
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 06.04.2011 12:29 Репутация: 0  
Ну тогда почти точно в статье маски не правильные,я 100 раз уже проверил.
Этими масками мы толком не можем порты замаскировать,ни толком нужные биты из массива выдернуть.
Только для 100% уверенности меня смущщает цифра в 17тыщ просмотров,
неужели ни у кого не возникали вопросы по этому поводу?Или я самый одаренный художник НеВрубель?
Проверьте пожалуйста статью,и если не сложно отпишитесь,а то я дальше не могу к изучению приступить

Содержимое поста отредактировано: vek, в: 06.04.2011 13:14
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6405
ARV (Администратор)
Администратор
Постов: 2386
graph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 07.04.2011 08:30 Репутация: 176  
что-то там не так... снова посмотрел на свою писанину - показалось что-то странным, но, к сожалению, пока нет времени переделать. похоже, я где-то или поставил лишний сдвиг, или наоборот, пропустил.
Не стыдно не знать, стыдно не учиться
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#6408
vek (Пользователь)
Новичок
Постов: 17
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 07.04.2011 13:07 Репутация: 0  
уже сто раз проверил будет так:

#define MASKB 0x02 //было 0х80
//тут мы маскируем РВ1-по ТЗ именно этот порт отвечает за сегмент А,
//а вы пытались замаскировать байт-символ(это там 7-й бит отвечал за сегмент А)

#define MASKC 0x41 // было 0х48
// тут маскируем РС6-сегмент Н и РС0-сегмент В, а из байта-символа
// мы все равно выдергиваем нужные биты с помощью &_BV(6) и &_BV(3)

#define MASKD 0x37


PORTD = (PORTD & ~MASKD) | (SCR[pos] & MASKD);
PORTB = (PORTB & ~MASKB ) | ((SCR[pos] & _BV(7)) >> 6); // и тут совсем немного меняем
PORTC = (PORTC & ~MASKC) |
((SCR[pos] & _BV(6)) |
(((SCR[pos] & _BV(3)) >> 3);

Кстати от куда взялось это _BV(7),_BV(6),_BV(5)... мы же вроде ни где не описывали??.

Содержимое поста отредактировано: vek, в: 07.04.2011 14:46
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#7377
3bugatti (Пользователь)
Новичок
Постов: 1
graphgraph
В ответ на: ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ 08.04.2012 01:15 Репутация: 0  
Добрый вечер!

Понравилась ваша статья про динамическую индикацию! И там упоминался способ индикации с помощью 74HC595. Очень бы хотелось освоить данный способ) Пользуюсь AVR Studio язык С.
  Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
_GEN_GOTOTOP Ответить
© Copyright 2007 Best of Joomla, Работает на FireBoardполучить последние сообщения прямо на Ваш рабочий стол