Страница 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 смысл был).