Страница 97 из 628

Re: Различные мелкие вопросы

Добавлено: Вт май 25, 2010 08:37:02
Арвар
спасибо вроде всё понятно - буду с помощью switcha наверно реализовывать.

Re: Различные мелкие вопросы

Добавлено: Вт май 25, 2010 09:02:17
Meteor
Арвар писал(а):надо значение ацп преобразовать в семисегментный код, т.е. нужен дешифратор.
Если нужно отображение только цифрами, то вначале необходимо преобразовать результат в двоично-десятичный код (инфы должно быть море, как это делать на асме например), а затем уже полученный код преобразовывать в семисегментный. Код создается по типу индикатора под общий анод или общий катод, а также в зависимости от того, какой уровень будет активным нуль или единица. Коды семисегментников зашиваю в EEPROM по адресам от 0 до 9(числа) или 0x0f (численно-буквенный код), откуда читаю значения.

Re: Различные мелкие вопросы

Добавлено: Ср май 26, 2010 07:49:21
x_sensor
Народ, проверьте пожалуйста печатку для Altera Byte Blaster.

Будет ли работать...? Разводил первый раз...

Re: Различные мелкие вопросы

Добавлено: Пт май 28, 2010 21:43:07
Арвар
Люди! Пните меня пож-та в нужном направлении!=)
делаю термометр на атмеге8 и семисегментном индикаторе.
сначала хотел измерять температуру с помощью резистивного моста с последующим АЦП преобразованием, но сегодня нашёл таки и купил датчик DS18b20=)
ввиду многочисленной разнообразной информации, причём местами очень непонятной, не знаю с чего начать=(
интерфейс 1-цшку изучил, пишу исключительно на С в avr-studio
/*
вот моё грубое понимание алгоритма работы проги:
1.сигнальный провод датчика можно кинуть практически на любую ногу МК
2. формируем этот вывод на выход - создаём импульс резет
3. формируем эту же ногу на вход, ждем сигнала присутствия, далее получаем информацию - сохраняем инфо о температуре в регитре - выводим этот результат на семисегментник
*/

Re: Различные мелкие вопросы

Добавлено: Пт май 28, 2010 22:12:14
AI_Disable
1. Шлём RESET;
2. Получаем PRESENCE;
3. Если датчик один, то отправляем 0xCC;
4. Запускаем измерение 0x44;
5. Ждём около 800 мс или ждём пока датчик "отпустит" линию от нуля;
6. Шлём RESET;
7. Получаем PRESENCE;
8. Просим у датчика считать данные 0xBE;
9. Читаем данные и CRC.

Re: Различные мелкие вопросы

Добавлено: Пт май 28, 2010 22:57:00
Pooher
Позволю себе поправить.
1-5 - всё ОК.
а дальше:
6. Шлём RESET;
7. Получаем PRESENCE;
8.0xCC;
9. Просим у датчика считать данные 0xBE;
10. Читаем данные и CRC.

Re: Различные мелкие вопросы

Добавлено: Сб май 29, 2010 09:19:10
Арвар
надеюсь, что это пройдёт без проблем=)

Re: Различные мелкие вопросы

Добавлено: Вт июн 01, 2010 14:03:05
Shurf
Добрый день.
Добрался до программатора USBbit v1.1. Уж больно его народ расхваливает - и шьет быстро, и прошивать его самого не надо и всякое прочее бла-бла. Ну я обрадовался, сделал печатку (и надо-же, дорожки 0,4 мм вышли четкими по методу Лазерного Утюга), но не тут-то было - купить микросхему FT232RL оказалось сложно - в розничной сети она порядка 300р (меня Жаба давить начала), а оптовики предлагают только опт(что неудивительно, впрочем). Но розничники предложили аналог - PL2303. Уверяли, что распиновка у них идентична. Я задумался и полез искать дадашиты. Вот что получил в итоге:
Изображение
Как видно, распиновка этих микросхем вроде как не сходится, то есть придется делать новую ПП.
Но если бы только в этом и была проблема..
Интересует функциональная взаимозаменяемость этих МС в вышеуказанном программаторе.
В частности на той же страничке программатора есть Вопрос-Ответ:
В: Можно-ли вместо микросхемы FT232RL использовать FT245BM?
О: В FT245BM НЕТУ BitBang Режима. Он есть в FT245R. Принцип работы данного программатора основан как-раз на функциях BitBang.
datasheet PL2303 на поиск по BitBang ничего не дал(

PS: пересмотрел схемы, кажется распиновка идентична, если GND3.3V и GND это одно и то же. И прочее с питанием.

Re: Различные мелкие вопросы

Добавлено: Ср июн 02, 2010 14:47:55
Арвар
эх, подскажите, пож-та, как осуществить посылку 0xCC? с помощь команды сдвига?

Re: Различные мелкие вопросы

Добавлено: Ср июн 02, 2010 14:51:54
AI_Disable
Работа с 1-wire:

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

#define DDR1W DDRB
#define PIN1W PINB
#define DQ 0

//RESET и PRESENCE
char reset()
{
DDR1W|=(1<<DQ);
_delay_us(500);
DDR1W&=~(1<<DQ);
_delay_us(65);
if(!(PIN1W&(1<<DQ))) return(1);
else return(0);
}


//передача данных
void wire_tx(unsigned char data)
	{
	for(unsigned char i=0; i<8; i++)
     		{
       		if(!(data&(1<<i))){DDR1W|=(1<<DQ); _delay_us(80); DDR1W&=~(1<<DQ);}
		else{DDR1W|=(1<<DQ); _delay_us(7); DDR1W&=~(1<<DQ); _delay_us(73);}
		_delay_us(10);
     		}
	}


//Приём данных
char wire_rx()
	{
	unsigned char datarx=0;
	for(unsigned char i=0; i<8; i++)
     		{
		DDR1W|=(1<<DQ);
		_delay_us(7);
		DDR1W&=~(1<<DQ);
		_delay_us(7);
       		if(PIN1W&(1<<DQ)) datarx|=(1<<i);
		_delay_us(120);
     		}
	return(datarx);
	}

Re: Различные мелкие вопросы

Добавлено: Ср июн 02, 2010 22:53:25
Alexeus
подскажите пожалуйста, поставил в схему с мк цифровой транзистор PDTC143E с встроенными резисторами 4.7к, так что при подаче на базу напряжения лог.уровня (5в) получается делитель и на базу приходит 2,5в -меня волнует вопрос правильный ли это режим, полностью ли открывается в данном случае транзистор??? (схема работает, но хочу уточнить)

Re: Различные мелкие вопросы

Добавлено: Ср июн 02, 2010 23:25:27
AI_Disable
Биполярные транзисторы открываются током, а не напряжением, так что всё ок.

Re: Различные мелкие вопросы

Добавлено: Чт июн 03, 2010 08:48:55
Арвар
AI_Disable благодарю=)

Re: Различные мелкие вопросы

Добавлено: Чт июн 03, 2010 20:17:04
Sam__s
Ребята, подскажите, а то смотрю в даташитах, и что-то не пойму. При сборке программатора ByteBlaster, схему 74HC244 можно заменить 74HC374D?
Сильно не бейте :) Заранее благодарен.

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 15:00:56
Arlleex
Attiny2313
Можно ли по нажатию на кнопку увеличивать значение таймера/счетчика, а когда нажали другую кнопку, просто декрементировать значение таймера/счетчика?
т.е. нажали на кнопку 1 раз, в регистр таймера записалось 00000001, затем еще раз, в регистре появится 00000010 и т.д.
А когда нажали другую кнопку, то счет пошел вниз... 00000010, 00000001, 00000000...
?

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 16:12:19
Meteor
Можно. Самое простое - задействовать механизм прерываний по внешним событиям. Например настраиваем входы int0 и int1 на обработку событий по переднему фронту (переход из 0 в 1). В обработчике int0 пишем инкремент переменной, а в обработчике int1 - декремент.

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 17:34:09
Arlleex
ну это просто событие от кнопок.
А как сами таймеры задействовать?

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 17:47:24
AI_Disable
Задействовать для чего? Запуск таймера осуществляется выбором прескалера (биты CSxx регистра TCCRxB). Регистр счёта таймера – TCNTx

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 18:36:54
Arlleex
для отсчета.
МНе надо декрементировать какой-либо регистр раз в 1 секунду. И результат дешифрировать на 7 сегм. индикатор.

Re: Различные мелкие вопросы

Добавлено: Пт июн 04, 2010 19:13:14
avreal
Sam__s писал(а):Ребята, подскажите, а то смотрю в даташитах, и что-то не пойму. При сборке программатора ByteBlaster, схему 74HC244 можно заменить 74HC374D?
Нельзя. Если очень захотеть, можно на 74hc373 или 74hc573, пустив вторую перемычку автоопределения наличия тоже напрямую (всё равно на КМОП-сериях смысла через шинник пропускать нет, это в старой версии на 74LS244 смысл был).