Проблема AtTiny2313+ds18b20

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Так динамика - динамике рознь.
8)
Если используется "посегментная"(растровая - как у многих китаяцев/упрощенных схем) то ток НЕ БОЛЕЕ 20мА.
Однако яркость и восприятие такого 4-х позиционного дисплея... НЕ ОЧЕНЬ...
И для обмена с далласами надо остановку регенерации делать...
:roll:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

не, в тине нет измерителей... опора есть, и к ней компаратор прицепить можно... и всё, вроде.
[uquote="BOB51",url="/forum/viewtopic.php?p=3271393#p3271393"]для обмена с далласами надо остановку регенерации делать...
:roll:[/uquote] не, необязательно, можно с ней синхронно опрашивать, как говорят евреи "между капелек" :))
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Лучше с помощью UART. Пускай этим периферия занимается и у МК будет сколько угодно времени на другие дела.. Жаль что в авр полудуплексного режима UART нет, требуется два порта.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ДСку можно только с помощью работы через UART одновременно с обслуживанием интенсивной регенерации светодиодного дисплея обрабатывать.
НО ... там "свои грабли" и вряд-ли для начинающего задача.
8)
в остальных случаях обязателен защищенный интервал на запрос/ответ и пересылку одного байта минимум.
:)
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

третью страницу толчем воду в ступе...
без исходника - разговор ни о чем...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Что там сложно в UART, я вас умоляю...
BOB51 писал(а):только с помощью работы через UART одновременно
И тут я не соглашусь. Точки в таймслоте можно сформировать от таймера, а между таймслотами тупи сколько угодно.

Добавлено after 45 seconds:
Starichok51 писал(а):разговор ни о чем...
Да хотя бы осциллограммы из протеуса.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

я проект сюда скидывал - там какраз от таймера регенерации всё и отталкивается
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Ответил ЛС.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

вот выкладываю исходник

Добавлено after 1 hour 27 minutes 4 seconds:
Все, разобрался, слишком длинные стробы были, по документации 15мкс - это максимум, ну я и сделал... так... 15... в общем тормознул... ну и очевидно, когда на грани - один датчик работает, другой - нет...
исправил на 3мкс - и все заработало.

Персональное спасибо - dr.doc - разобрался с его помощью!
Всем спасибо за участие!

Добавлено after 13 minutes 4 seconds:
[uquote="musor",url="/forum/viewtopic.php?p=3271350#p3271350"]ну чисто по китайски оне тоже волтметры/термометры на LED так ваяют- без внешних ключей(тока 2 сборки по 4 резистора на сегменты) и все работает(если индикатор яркий ) хитрость в том чтоб не превысить токи портов и мошу у чипа... но есть 1но...они VРЕФ делают внешний(прецизионик 1,2в) -иначе мерить будем прогоду в доме точне нагев самого мк...
кстати по слухам некоторые мк имеют свстроеный термодатчик и позволяют себя родимого вывести на дисплей...насчен указаного в заголовке не скажу...не копал так глубоко[/uquote]


я читал, что один выход (порт) контроллера тянет аж 40ма... 2 в параллели- получается - 80... использую только 7 сегментов, т.е. можно увелисить до 10ма, а с учетом динамической индикации - и побольше...
у меня сейчас приблизительно ток 5ма, или даже 4... - маловато, но видно... так что увеличить можно.
Вложения
main.asm
(5 КБ) 373 скачивания
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

код можно сделать оптимальнее:
1. после того, как обработал отрицательное значение и загрузил знак минуса, делаешь переход в подпрограмму положительного значения, вот так:
otric_2:
rjmp polog_1

2. не надо 2 раза повторять код чтения байта.
делаешь подпрограмму чтения одного байта в любой свободный регистр.
подпрограммой 2 раза читаешь байт в этот регистр, из этого регистра перемещаешь сначала в lbyte, потом - в hbyte.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
akl
Друг Кота
Сообщения: 4450
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Леонид_М Не забудьте установить указатель стека.

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

	LDI	R16,RAMEND
	OUT	SPL,R16
Хотя, посмотрел свежий DS такая установка сделано аппаратно. А раньше не было.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3272577#p3272577"]код можно сделать оптимальнее:
1. после того, как обработал отрицательное значение и загрузил знак минуса, делаешь переход в подпрограмму положительного значения, вот так:
otric_2:
rjmp polog_1

2. не надо 2 раза повторять код чтения байта.
делаешь подпрограмму чтения одного байта в любой свободный регистр.
подпрограммой 2 раза читаешь байт в этот регистр, из этого регистра перемещаешь сначала в lbyte, потом - в hbyte.[/uquote]

да, вы правы, тут я переборщил... но это еще из-за того, что я все никак не мог добиться нормальной работы датчика.
у меня вообще такая мысль: записывать значение не а 2 регистра, а в 1 - младший полубайт старшего и старший - младшего - думаю, тоже уменьшит код... хотя может и не так существенно...

Добавлено after 10 minutes 36 seconds:
[uquote="akl",url="/forum/viewtopic.php?p=3272663#p3272663"]Леонид_М Не забудьте установить указатель стека.

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

	LDI	R16,RAMEND
	OUT	SPL,R16
Хотя, посмотрел свежий DS такая установка сделано аппаратно. А раньше не было.[/uquote]

да, тут я просто пока не разобрался, у меня было так:
ldi Temp,RamEnd
out SPL,Temp

но я что-то засомневался, ведь стек вроде как 2-х байтовый... и что делать со старшим байтом (если он есть тут) - я пока не выяснял, т.к. сначала занялся проблемой с датчиком.
Вот датчик заработал - теперь можно разбираться дальше.
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Различается размерность адресации ячеек стека и размерность помещаемых в него данных.
У тиньки 2313 адресация ячеек ОЗУ (а в оных и стек размещается) не превышает одного байта.
А помещаем мы в стек данные побайтово - адрес возврата двухбайтовый - следовательно "сожрет" две ячейки стека.
8)
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

Леонид_М писал(а):думаю, тоже уменьшит код...
одинаково.
все равно читать 2 байта, а когда и в каком месте совмещать два полубайта - разницы нет.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

[uquote="BOB51",url="/forum/viewtopic.php?p=3273587#p3273587"]Различается размерность адресации ячеек стека и размерность помещаемых в него данных.
У тиньки 2313 адресация ячеек ОЗУ (а в оных и стек размещается) не превышает одного байта.
А помещаем мы в стек данные побайтово - адрес возврата двухбайтовый - следовательно "сожрет" две ячейки стека.
8)[/uquote]

это понятно, я про то, что не знаю, нужно ли старший байт стека задавать, хоть там физической памяти и нет, но при наличии какой-нибудь единицы в старшем байте стека будет адресовать в несуществующую область... я просто не знаю этих подробностей про этот МК.

Добавлено after 2 minutes:
[uquote="Starichok51",url="/forum/viewtopic.php?p=3273729#p3273729"]
Леонид_М писал(а):думаю, тоже уменьшит код...
одинаково.
все равно читать 2 байта, а когда и в каком месте совмещать два полубайта - разницы нет.[/uquote]

тогда - полтора байта, последние 4 бита - не читаем....
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Леонид_М писал(а):я про то, что не знаю, нужно ли старший байт стека задавать, хоть там физической памяти и нет,
Указатель стека в данном МК 8ми битный (SPL), т.е. регистра SPH нет и задавать старший байт указателя стека некуда, что логично.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Грызет канифоль
Сообщения: 257
Зарегистрирован: Пн окт 03, 2016 10:06:09

Сообщение Леонид_М »

[uquote="Z_h_e",url="/forum/viewtopic.php?p=3274017#p3274017"]
Леонид_М писал(а):я про то, что не знаю, нужно ли старший байт стека задавать, хоть там физической памяти и нет,
Указатель стека в данном МК 8ми битный (SPL), т.е. регистра SPH нет и задавать старший байт указателя стека некуда, что логично.[/uquote]

понял, спасибо...
естественно, если памяти не больше 256 байт - то 1 байта хватит, но меня смутило такое наименование: SPL - подумал, что если он есть, то и д.б. SPH, иначе был бы SP.
Я нижний забивал значением, а верхний не получилось - ругался, ну и пока плюнул на этот момент на фоне проблемы с самим датчиком.
Ответить

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