Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » RC5, DS18B20 и динамическая развёртка на Timer2


RC5, DS18B20 и динамическая развёртка на Timer2

Сообщений 1 страница 11 из 11

1

Снова вопрос , снова часы.
Где то прочитал, человек пишет - "что не делаю, получаются часы".
Что имееем:
На таймере 2 организована динамическая индикация для матрицы светодиодов.
DS1307 и DS18B20 работают совместно без проблем.
Попытался добавить RC5. И здесь засада - всё перестаёт работать.
Я так понимаю, что таймер 0 используется и для DS18B20, и для RC5.
Переназначить RC5 на таймер 2 не могу, он занят.
Как заставить работать DS18B20 и RC5 одновременно?
Какой выход может быть - вот в чём вопрос?

0

2

А если перекинуть индикацию на Timer 1?

0

3

Я уже не помню, но почему-то  Timer 1 мне не подошёл...
Вспомнил, он 16-разрядный, у меня при переполнении и при совпадении есть действия - регулировка яркости и т.д.
Может и придётся переносить, если другого решения не найду.

0

4

Mrshilov написал(а):

Если DS1307 и DS18B20 работают через аппаратный TWI, то они не должны использовать таймер.
При использовании штатных ног SCL и SDA нужно просто подцепить аппаратную библиотеку:


DS1307 висит на PD0, PD1 ATMEGA128. Т.е. используется аппаратный режим, попробую прицепить аппаратную библиотеку.
А вот DS18B20 - висит на PG2. Что с термометром, для него тоже нужно специальное подключение и аппаратная библиотека?

0

5

Mrshilov написал(а):

Если DS1307 и DS18B20 работают через аппаратный TWI

Разве 1Wire согласуется с I2C на уровне протокола?
На UART теоретически можно повесить (с компом прокатывает, может и с MK этот трюк сработает), но насчет I2C, есть сомнения.

0

6

Mrshilov написал(а):

Для 1Wire нигде не указано, что он использует таймер, хотя как-то время замеряет.

Вполне возможно что используются циклы для формирования требуемой задержки, примерно как в функции Waitus.

0

7

Получается, что лучше всего использовать MODE=BACKGROUND.
В таком случае не будет тратится время в основном цикле программы.

0

8

RC5  использует по умолчанию  Timer 1, может в
этом проблема? И попытка его использовать в других
целях и ведёт к конфликту.
А об DS18B20 уже сколько народу мозги сломало, а
тут всё просто. Уменьшите разрядность, работайте с ней в
паузах, когда ближайшие 1-2мсек будут свободны.
И разделите работу с ней на два этапа, запуск преобразования
и считывание . Запустили преобразование и на секунду - другую
забыли, затем считали результат и через время снова запуск.

0

9

alex_r61 написал(а):

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

Я так и делаю.
Через каждые 5 секунд - запуск на преобразование, затем через 5 - считывание и расчёт.
Один замер в 10 секунд.
Для домашних условий больше и не нужно. Температура так быстро всё равно не будет меняться.

0

10

MODE=BACKGROUND работает.
На таймере 1. Таймер 3 не компилируется, выдаёт ошибку - нет GIFR3.
Вообщем Баском - это сила!
Всё никак руки не доходят взяться по серъёзному, но и такие успехи меня радуют.
У меня девайс на 1024 светодиода - 8 регистров TPIC6C595, 16 полевиков.
ИК пульт, регулировка яркости с помощью фоторезистора, кнопки, датчик температуры, часы реального времени, связь с ПК через ЮСБ(тут Тинька 2313 стоит), на ней же бутлоадер. Всем этим рулит Мега128, и занято пока 9% памяти. Теперь остаётся самое интересное - эффекты писать. Да, это часы, если что. :tomato:

0

11

radan написал(а):

Да, это часы, если что.

А я то уже подумал что LED телевизор собираешь)))

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » RC5, DS18B20 и динамическая развёртка на Timer2