роботы робототехника микроконтроллеры


 Страниц (11): В начало « ... 3 4 5 6 7 8 9 [10] 11 »   

> Без описания
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



да теперь то тогадался что по четыре.
всето думали что вы зажигаете верхние восемь, а потом нижнее восемь.
схему то не нарисовали. А от куда я знаю что там у вас в голове.
 
 Top
lamakazzz Post Id



Главнокомандующий


Сообщений всего: 328
Дата рег-ции: Янв. 2010  




Белый Волк, Вы плохо прочитали, что я написал =)

Цитата:
PORTD = data & 1; - эта строчка постоянно будет записывать в нулевой бит порта D единицу, если нулевой бит data =1 и 0, если 0. Остальные биты будут нулевыми. "&1" для вывода всего байта там лишняя.

в контексте подразумевалось, что другие биты байта могут быть отличны от нуля, т.к. &1 - это маска на байт и в результате он будет иметь значение 0 или 1

(Отредактировано автором: 09 Февраля, 2011 - 11:22:31)

 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



CODE:
{
PORTC.2=0;//SH_CP=0
PORTC.0=VideoRAM[i] & l;//transmit bit - наложим на байт маску текущей строки и выставим в порт(на вход DS)
PORTC.2=1;//SH_CP=1 - протолкнем бит в сдвиг. регистры
};

Вот кусочек конда на codevisionavr. Тут вот используется маска на байт, с какой целью это делают?
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



skyburn
К каким выводам подключен сдвиговый регистр, к каким линиям сдвигового регистра подключены светодиоды анодом (+) и катодом (-)?

Я дал Вам пример программы - нельзя просто вставить его в свою программу и ожидать корректной работы: он только для того, чтобы Вы разобрались в принципе.

Эта строка
buf = ((unsigned char)(data & 15) << 4) | (~(1 << i) & 15);
означает: взять первые 4 бита из переменной data, сдвинуть их на 4 позиции влево, чтобы они поместились в старшей тетраде битов, затем в младшей тетраде расположить 0 на позиции i, расположив во всех остальных битах 1. Эта строка писалась из предположения, что сдвиговый регистр подключен старшей тетрадой к анодам (+) светодиодов, а младшей - к катодам (-).
По итерациям цикла, переменная buf будет равна:
0b11111110
0b10011101
0b10011011
0b11110111

Данный код нельзя использовать в программе "как есть", потому что переменная data после 4 итераций цикла for теряет своё значение.
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Я подключил Q0-Q3 к анодам, а Q4-Q7 к катодам. Спасибо что обьяснили код, немного пролили свет мне)
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



В общем, записываю вот такой вот код в МК:
CODE:
#include <tiny2313.h>
#include <delay.h>
main(void)
{
DDRB=0xff;
for(;;)
{PORTB.0=0b00000000;
PORTB.1=0;
PORTB.1=1;

PORTB.2=1;

PORTB.2=0;
delay_ms(50);
}

}

а у меня горит 1 ряд светодиодов. Почему?
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



skyburn пишет:
а у меня горит 1 ряд светодиодов. Почему?
а схемы всё ещё нет?
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Неа, подскажите программу де можно сделать, и тогда будет схема
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



www.cadsoft.de

Но придётся долго "обучаться". Хотя бы на бумажке нарисуйте сначала и дайте фотографию Улыбка
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Окей, в пеинте накидаю примерно
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



потому что вы его так запрограммировали.

сомневаюсь я что защелка и тактовый успевают сработать
все таки частота МК гораздо выше
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



cjA
В худшем случае максимальная частота тактовых импульсов для 74HC595, при напряжении 4.5 В равна 30 МГц.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



хорошо
а выходы регистра можно как входы диодов использовать?
должны или все гореть, или никто, если на ножках только ноль
(Добавление)
то есть как нагрузку- у них открытый коллектор?
 
 Top
skyburn Post Id



Маршал


Сообщений всего: 124
Дата рег-ции: Янв. 2011  



Все успевает! Все можно! Вот вы все советуете, а как будто сами не когда и не работали с регистрами
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



ну если можно- то не понятно почему у МК существуют два режима вход\выход и опция включения подтяжки.
я вовсе не советую, мне просто интересно, еще раз посмотрел вашу пайку, предположительно у вас дата- на портВ0, синх на портВ1 и защелка на портВ2. Но выже какую то гостайну делаете?
Вы же писали что у вас все выводится? зачем код под кодевижен тогда переделывать?


В предыдущем каменте я к Белый Волк с вопросом обращался.
 
 Top
Страниц (11): В начало « ... 3 4 5 6 7 8 9 [10] 11 »
« Делаем роботов »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru