Страница 3 из 3

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 09:31:06
BOB51
Так динамика - динамике рознь.
8)
Если используется "посегментная"(растровая - как у многих китаяцев/упрощенных схем) то ток НЕ БОЛЕЕ 20мА.
Однако яркость и восприятие такого 4-х позиционного дисплея... НЕ ОЧЕНЬ...
И для обмена с далласами надо остановку регенерации делать...
:roll:

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 11:48:57
Ivanoff-iv
не, в тине нет измерителей... опора есть, и к ней компаратор прицепить можно... и всё, вроде.
[uquote="BOB51",url="/forum/viewtopic.php?p=3271393#p3271393"]для обмена с далласами надо остановку регенерации делать...
:roll:[/uquote] не, необязательно, можно с ней синхронно опрашивать, как говорят евреи "между капелек" :))

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 11:51:31
Z_h_e
Лучше с помощью UART. Пускай этим периферия занимается и у МК будет сколько угодно времени на другие дела.. Жаль что в авр полудуплексного режима UART нет, требуется два порта.

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 12:26:30
BOB51
ДСку можно только с помощью работы через UART одновременно с обслуживанием интенсивной регенерации светодиодного дисплея обрабатывать.
НО ... там "свои грабли" и вряд-ли для начинающего задача.
8)
в остальных случаях обязателен защищенный интервал на запрос/ответ и пересылку одного байта минимум.
:)

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 12:28:46
Starichok51
третью страницу толчем воду в ступе...
без исходника - разговор ни о чем...

Re: Проблема AtTiny2313+ds18b20

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

Добавлено after 45 seconds:
Starichok51 писал(а):разговор ни о чем...
Да хотя бы осциллограммы из протеуса.

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 12:45:12
Ivanoff-iv
я проект сюда скидывал - там какраз от таймера регенерации всё и отталкивается

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пт дек 29, 2017 21:06:58
dr.doc
Ответил ЛС.

Re: Проблема AtTiny2313+ds18b20

Добавлено: Сб дек 30, 2017 00:52:10
Леонид_М
вот выкладываю исходник

Добавлено 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... - маловато, но видно... так что увеличить можно.

Re: Проблема AtTiny2313+ds18b20

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

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

Re: Проблема AtTiny2313+ds18b20

Добавлено: Вс дек 31, 2017 14:17:29
akl
Леонид_М Не забудьте установить указатель стека.

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

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

Re: Проблема AtTiny2313+ds18b20

Добавлено: Пн янв 01, 2018 20:45:06
Леонид_М
[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-х байтовый... и что делать со старшим байтом (если он есть тут) - я пока не выяснял, т.к. сначала занялся проблемой с датчиком.
Вот датчик заработал - теперь можно разбираться дальше.

Re: Проблема AtTiny2313+ds18b20

Добавлено: Вт янв 02, 2018 09:31:32
BOB51
Различается размерность адресации ячеек стека и размерность помещаемых в него данных.
У тиньки 2313 адресация ячеек ОЗУ (а в оных и стек размещается) не превышает одного байта.
А помещаем мы в стек данные побайтово - адрес возврата двухбайтовый - следовательно "сожрет" две ячейки стека.
8)

Re: Проблема AtTiny2313+ds18b20

Добавлено: Вт янв 02, 2018 13:51:47
Starichok51
Леонид_М писал(а):думаю, тоже уменьшит код...
одинаково.
все равно читать 2 байта, а когда и в каком месте совмещать два полубайта - разницы нет.

Re: Проблема AtTiny2313+ds18b20

Добавлено: Вт янв 02, 2018 20:15:54
Леонид_М
[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 бита - не читаем....

Re: Проблема AtTiny2313+ds18b20

Добавлено: Вт янв 02, 2018 20:28:35
Z_h_e
Леонид_М писал(а):я про то, что не знаю, нужно ли старший байт стека задавать, хоть там физической памяти и нет,
Указатель стека в данном МК 8ми битный (SPL), т.е. регистра SPH нет и задавать старший байт указателя стека некуда, что логично.

Re: Проблема AtTiny2313+ds18b20

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

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