Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/90: Рейтинг темы: голосов - 90, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21

Ещё один таймер для фоторезиста

29.01.2014, 21:01. Показов 18837. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Создаю данный топик в виде старта проекта, сам проект планируется полностью открытым. Из названия в принципе понятно, что к чему. Изучать МК начал совсем недавно, многие моменты мне ещё совсем непонятны, поэтому тема и создаётся здесь. Пока начал с ассемблера, поэтому проект будет на нём. Так что буду собирать таймер и одновременно улучшать свои познания в программировании, поэтому за глупые вопросы прошу сильно не пинать.
Итого, что имеется:
1. СД матрица на УФ светодиодах. 90 вольт 300 мА.
2. ЖК 44780 20х2 (размер экзотный, но какой есть, не покупать же)
3. Разные МК, но для данного проекта остановился на 2313, как на наиболее подходящем для этой задачи.
Что хочется:
1. Собственно, сам таймер. Дискретность установки времени 1 секунда. Максимальная установка 99 минут.
2. Звуковое оповещение по окончанию засветки фоторезиста (это просто)
3. Мониторинг температуры СД матрицы (DS18B20) и снижение мощности при перегреве (с пересчётом времени на засветку)
4. Возможность предварительного выбора мощности (скажем, 3 дискретных значения: 100%, 50% и 20%). Мощность задавать планирую при помощи аппаратного ШИМ-а.
5. Возможность сохранять и быстро загружать несколько предустановок время/мощность.
С чем ещё не определился:
1. Сколько кнопок отвести под управление. Хочется 4, но для удобства не помешало бы и 5 (отдельная кнопка для загрузки/сохранения пресетов)
2. Интерфейс в целом.
3. Силовая и питающая часть. Скорее всего будет разрабатываться под готовую схему с МК.
------------------------------
Буду рад услышать предложения, пожелания и дополнения по поводу интерфейса и его организации, каких-то интересных фишек, которые могли бы понадобиться в таймере и прочего.
В аттаче набросок схемы и первый вопрос: на какую ногу лучше повесить термометр (18В20) чтобы потом не было хитрых заморочек с кодом?





0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2014, 21:01
Ответы с готовыми решениями:

Таймер обратного отсчёта с 7 сегментным индикатором для расчета фоторезиста
Помогите написать программу или куда копать чтобы управлять 4 разрядным 7 сегментным индикатором. Управление будет 3 кнопками set + и...

Один таймер для попеременного развертывания нескольких панелей
На форме 4 панели.(скрин 1) Минимальная высота панелей 40, а максимальная может достигать 300. При нажатии на панель она...

Еще один ассемблер для STM8 (ST7)
Наткнулся в инете на этот сайт. Вообще то этим кросс-ассемблером пользовался во времена i8031, но в последней версии V5.03 в список...

34
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
30.01.2014, 00:52
Цитата Сообщение от Siryyvolk
первый вопрос: на какую ногу лучше повесить термометр (18В20) чтобы потом не было хитрых заморочек с кодом?
На выход UART-TxD - это самый удачный выбор пина для 1-Wire.
0
0 / 0 / 0
Регистрация: 16.07.2005
Сообщений: 826
30.01.2014, 01:09
Рассеивающий фильтр надо для светодиодов.
По моему жирный lcd, пункты 3 и 4 тут явно лишние. Вообще идеальный (для меня) таймер это как таймер в микроволновке, энкодер с кнопкой и 7-сегментный 4-разрядный дисплей. Энкодером устанавливаем время, нажатием запускаем таймер, по окончании времени пищит пищалка.
Можно добавить кнопки предустановок времени. Ручкой устанавливаем время, длинное нажатие на кнопку сохраняет время, короткое нажатие, устанавливает сохраненное время.
Вот когда найду пленку для струйников, именно такой таймер себе сделаю))
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
30.01.2014, 01:19
Цитата Сообщение от OtyxPM
На выход UART-TxD
А можно более подробно преимущества подключения именно сюда?
И ещё. Слышал, что этот датчик, если питать его постоянно, склонен саморазогреваться, и от этого страдает точность измерения температуры. А на сколько он сам может нагреться? Если в пределах пяти градусов - - то для данного применения не критично... Кто-нибудь обладает данной информацией?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
30.01.2014, 01:34
Цитата Сообщение от Siryyvolk
Цитата Сообщение от OtyxPM
На выход UART-TxD
А можно более подробно преимущества подключения именно сюда?Есть два способа управления 1-Wire: программный (посредством "ногодрыга" через любой GPIO-пин) и аппаратный (через UART, работающий на двух стандартных baudrates - 115200 и 9600). Так что, если подключите именно к UARTовским пинам (забыл сказать, что RxD тоже понадобится), то сможете попробовать оба способа.

Цитата Сообщение от Siryyvolk
Слышал, что этот датчик, если питать его постоянно, склонен саморазогреваться
У меня питаются постоянно, не греются, холодные.
0
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
30.01.2014, 17:09
В моей засветке 220 светодиодов, собраны в 22 линии по 10 штук. Самой главной загвоздкой было - где взять 22 источника тока, да еще с немаленьким напряжением (32 В). В итоге использовал STP24DP05. Остальное просто - mega8, HD44780, энкодер, пищалка, MC34063A. Питается все от купленного блока.





0
0 / 0 / 0
Регистрация: 16.07.2005
Сообщений: 826
30.01.2014, 17:14
А в чем смысл применения именно светодиодов? Не легче купить люминисцентных ламп, и дешевле будет, и равномерность засветки должно быть лучше.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
30.01.2014, 17:38
2313 - это если программу писать на асме, и то не факт, что хватит flash. Товарищ выше MEGA8 использует. Навскидку я примерно так и накидывал, что МК на 8 кб где-то брать.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
30.01.2014, 18:50
Цитата Сообщение от Bomyo
А в чем смысл применения именно светодиодов? Не легче купить люминисцентных ламп, и дешевле будет, и равномерность засветки должно быть лучше.
Лампа у меня есть. С ней получается большая боковая засветка. А со светодиодами - нет.
Цитата Сообщение от dymyurk1978
2313 - это если программу писать на асме, и то не факт, что хватит flash.
Ну по предварительным прикидкам должно хватить. Зато МК будет использован на все 100%. Ни одной свободной ножки, ни одного свободного байта памяти. :D
0
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
30.01.2014, 20:33
Цитата Сообщение от Bomyo
А в чем смысл применения именно светодиодов? Не легче купить люминисцентных ламп, и дешевле будет, и равномерность засветки должно быть лучше.
В моем случае китайцы первыми прислали светодиоды. А лампы потерялись по дороге.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
30.01.2014, 21:05
Развёл и сделал платку. К сожалению дома запаять не хватает кой-каких деталей, так бы сегодня уже пробовал запустить хоть основной алгоритм отсчёта времени...

0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
31.01.2014, 01:11
Нарыл кусочек кода для преобразования BIN_TO_BCD
Code
1
2
3
4
5
6
7
8
9
10
Hex2Ascii:      LDI r18,-1+0
bcd1:           INC r18
SUBI r16,100
BRCC bcd1
LDI r17,10+0
bcd2:           DEC r17
SUBI r16,-10
BRCS bcd2
SBCI r16,-0
RET
Но непонятна одна запись... LDI r18,-1+0 Это значит загрузили в R18 минус единицу, а +0 - это что и зачем?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
31.01.2014, 01:38
Цитата Сообщение от Siryyvolk
непонятна одна запись... LDI r18,-1+0 Это значит загрузили в R18 минус единицу, а +0 - это что и зачем?
Это подготовка к выводу результата в символьном формате (цифры 0-9 представляются символами 0-9, то есть кодами 0x30-0x39).
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
31.01.2014, 01:45
Всё равно не понятно... Мы же получаем в регистрах после этого кусочка BCD данные, а зачем подготовка тогда? Можно как-то подробнее?, а то я совсем не врубаюсь, а понять очень хочется...
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
31.01.2014, 01:53
Цитата Сообщение от Siryyvolk
Всё равно не понятно... Мы же получаем в регистрах после этого кусочка BCD данные, а зачем подготовка тогда? Можно как-то подробнее?, а то я совсем не врубаюсь, а понять очень хочется...
Даже не видя всего кода, можно быть уверенным, что число представляется в виде цепочки символов для того, чтобы результат можно было сразу выводить на дисплей или в последовательный порт UART.
Ведь для печати числа, скажем, 2014, необходимо получить четыре символа - 2, 0, 1 и 4. Вот это и получается. Сразу то, что нужно для печати.

Кстати, присмотрелся к коду внимательнее: он преобразует к печатному виду не только "обычные" цифры 0-9, но и шестнадцатиричные A-F. Собственно, название функции на это указывает: Hex2Ascii.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
31.01.2014, 02:06
Так это весь код и есть. Готовый пример, так сказать. Мне-то по простому и нужно преобразовывать какое-то значение регистра в BCD для дальнейшего его вывода на дисплей. На тестовой платке (мега128) я это делал функцией, в которой присутствовало умножение, а тини множить не умеет, вот и приходится искать обходные пути.
И не совсем понятно, как этот кусочек кода транслирует результат прямо в Ascii, бо не понимаю зачем, как и для чего вышеприведённая запись, про которую я и спрашивал. Как число представляется для вывода - мне было понятно и раньше.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
02.02.2014, 02:20
OtyxPM, спасибо за обьяснения, хотя мне достаточно было бы той инфы, что вместо 0 компилятор подставляет код этого символа в Ascii. С этим разобрался.
Есть очередной вопрос. В прерывании, когда счётчик минут подошёл к нулю, нужно в переменную грузить значение 59 (вместо автоматом туда вставляющегося 255)
Суть своей идеи попробую преподнести в кусочке кода ниже. Знаю, что компилятор такую запись не хавает, но мне нужен совет, как это можно сделать проще.
На данный момент этот кусок работает с джампом за границы прерывания, но это как-то вроде некрасиво...

Вот так хочетсяTIMER_INTERRUPT:
PUSHF
SUBI LTime,1
SBRC SREG, C
LDI LTime, 59
SBCI HTime,0
SBR FLAG,1<<TimeUpdate
POPF
RETI

А вот так работаетTIMER_INTERRUPT:
PUSHF
SUBI LTime,1
BRCS LTime_LOAD
NEXT: SBCI HTime,0
SBR FLAG,1<<TimeUpdate
POPF
RETI

LTime_LOAD:
LDI LTime, 59
RJMP NEXT
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
02.02.2014, 13:00
Как-то так:
Code
1
2
3
in r16, SREG
sbrc
sbrs
Code
1
2
3
4
5
6
7
8
9
10
TIMER_INTERRUPT:
PUSHF
SUBI LTime,1
BRCC LABEL
LDI LTime, 59
LABEL:
SBCI HTime,0
SBR FLAG,1<<TimeUpdate
POPF
RETI
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
02.02.2014, 13:20
Вот спасибо, добрый человек! Отличная конструкция получилась! И на один переход меньше. Именно так я и хотел, но не смог сообразить.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21
02.02.2014, 18:08
Ну что-же, очередной вопрос :)
В тини2313 есть 16-разрядный таймер. Можно ли его заставить тикать с предделителем 1024, да так, чтобы при значении 10800 срабатывало прерывание?
Что-то с даташитом я так и не смог разобраться, как именно это сделать. Если у кого-то есть, то очень желателен пример инициализации и запуска таймера в таком режиме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.02.2014, 18:08
Помогаю со студенческими работами здесь

UV-подсветка для фоторезиста
Добрый день. просьба не сильно ругаться на качество продукта. я не волшебник, я только учусь. очень хочу начать работать с...

УФ лампа для засветки фоторезиста
Добрый вечер, подскажите, кто имел дело с лампами для маникюра? Они подойдут для засветки фоторезиста? ...

дешевый принтер для фоторезиста
думаю купить, секс с лазерником надоел. из дешевых есть нормальные проверенные модели? принтер будет использоваться только для печати...

Ультрафиолетовые (UV) светодиоды для засветки фоторезиста
Для засветки фоторезиста рекомендовано засвечивать длинной волны 380nm, такие светодиоды очень дороги ($0,60-0,80) за шт., а вот диоды с...

Как создать другой, еще один шлюз для контроля достуа
Подскажите чем можете. Уже не знаю что и делать.. Есть шлюз Сisco с ІР 192.168.1.1 Есть сервак с ІР 192.168.1.2 Есть сетка 200 ПК ІР...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru