atmega с 74hc165 или авр и приключения с SPI

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 11
Зарегистрирован: Пт фев 09, 2018 15:17:41

Сообщение maxpayn »

Доброго дня! Нуждаюсь в помощи, ибо руки уже опустаются. Начну с начала.
Надо мне сделать устройство которое будет смотреть какие пары кнопок нажаты одновременно, делать счет кто сколько нажал и светодиодная индикация этого.
Дано 8 кнопок и надо их нажимать определенными парами. Для этого я подумал взять регистр 74hc165 для контроля, и тут при испытаниях я отсановился, ибо ничего не получилось, что бы не пробовал и не переделывал.
Гуглил уже по многим разным темам , и примеры которые есть в интренете с SPI и 165 регистром не получились.
Начитавшись всего этого начал уже сам писать, но все примеры сводил к тому что к atmega8 подключен по spi 165регистр. какие бит приходят проецируем на порт D ( PORTD |= (1<<IncomingFrom165) или при другом алгоритме опроса то PORTD |= IncomingFrom165)
Никакие примеры из гугла у меня не заработали, я уже не знаю в чем сожет быть проблема.
Может кто работал с этим регистром и может подсказать что я делаю не так или просто сказать что я дурак и надо делать вот так.
Или может кто скажет что для опроса кнопок этот регитр не подходит и надо брать другой.
Реклама
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

Для чего нужен такой девайс? Почему парами? А если будет нажата не пара? Много ещё вопросов… схему бы посмотреть… сам регистр прост как гвоздь, в тырнете полно описания его работы…
Реклама
Родился
Сообщения: 11
Зарегистрирован: Пт фев 09, 2018 15:17:41

Сообщение maxpayn »

[uquote="АСУ",url="/forum/viewtopic.php?p=3493688#p3493688"]Для чего нужен такой девайс? Почему парами? А если будет нажата не пара? Много ещё вопросов… схему бы посмотреть… сам регистр прост как гвоздь, в тырнете полно описания его работы…[/uquote]
Не имеет значим зачем и что устройство должно делать. проблема что не могу с 165 регистра считать данные.
И да! я выше написал что в тыкнете попробовал ручками все примеры с 165, но не работает.
Поэтому и вопрос кто с ним работал, и может сказать в чем я дебил

Добавлено after 1 minute 53 seconds:
Пример кода:

Код: Выделить всё

#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
//#include <util/delay.h>
#include <stdio.h>

#define CLK PD2 // clock
#define SI PD3  // data
#define E PD4   // Enter
#define PORT PORTD
#define DDR DDRD
#define PIN PIND

int main()
{
	char k;
	int j;
	// GPIO setup
	DDR|=(1<<CLK)|(1<<E); // output
	DDR &= ~(1<<SI); // input
	// UART setup
	UBRRH=0; UBRRL=12;
	UCSRB=(1<<TXEN);
	UCSRC=(1<<URSEL)|(3<<UCSZ0); // 8n1

	// main loop
	while (1)
	{
		j=0;
		PORT &= ~(1<<E);
		//_delay_ms(1);
		PORT |= (1<<E);

		for(k=7;k>=0;k--)
		{
			//_delay_ms(1);
			j|=((PIN & (1<<SI))<<k);

			PORT&=~(1<<CLK);
		//	_delay_ms(1);
			PORT|=(1<<CLK);
		}
		j=j>>3;
		PORTD |= (1<<j);
	};
	return 0;
}
Друг Кота
Аватара пользователя
Сообщения: 15599
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Схемку сюда на всеобщее обозрение и описание входных и выходных сигналов.
Изображение
8)
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

[uquote="maxpayn",url="/forum/viewtopic.php?p=3494987#p3494987"]Не имеет значим зачем и что устройство должно делать.[/uquote]
Хорошо, хозяин барин. :tea:
Реклама
Ответить

Вернуться в «AVR»