Немного доработал прошивку, добавил новые команды.
MACRO - команда для создания макросов. Можно создать до 16 макросов, длинной до 256 байт. Макросы хранятся в EEPROM и сохраняются после отключения питания.
Параметры:
-
CLEAR - удаляет все макросы и подготавливает EEPROM для работы.
-
LIST - выводит список макросов.
-
NEW - создает новый макрос, следующее слово имя макроса, далее между двойными ковычками сам макрос. Пример:
MACRO NEW VA " ADC 0 ;" ; - создает макрос с именем VA, содержимое макроса: ADC 0 ;. Для исполнения этого макроса нужно ввести .VA, в ответ придет результат преобразования ацп с канала 0 . Знак "точка" отделяет имена макросов от обычных команд.
-
READ - выводит содержимое макроса. Пример:
MACRO READ VA ; - в ответ придет строка ADC 0 ;.
Конфигурация контроллера теперь должна хранится в макросе с именем AUTORUN.
Новая команда
TIMEOUT - позволяет отключать контроллер для сохранения энергии.
Параметры команды: число - время в мс (1..65535) до перехода в режим Standby. Если за указанный промежуток времени не поступит команд, то контроллер уснет.
К сожаления просыпаться от USART мега не умеет, поэтому будим ее по внешенму прерыванию. Для этого необходимо добавить резистор 10-20К между пинами 9 (RXD) и 12 (INT1).
- Mega16.png (9.75 КиБ) Просмотров: 2024
Параметры
ENABLE DISABLE разрешают/запрещают отключение мк.
Пример:
TIMEOUT 1000 ENABLE ; - после этой команды контроллер будет отключаться, если в течении 1с не поступают команды.
Для команды I2C доступны новые параметры:
NM (normal mode),
FM (fast mode) - 100КГц и 400КГц соответственно.
Добавлено спустя 3 минуты 36 секунд:Подключение микросхемки термометра DS1621.
С печатной платой даже не стал заморачиваться, подключить проще некуда.
Припаял 4 проводочка - VCC, GND, SCL, SDA и засунул ее в термоусадку.
Для работы с микросхемой создадим 2 макроса: на запуск преобразования и на чтение результата.
Запуск преобразования SC (Start Convert):
MACRO NEW SC "I2C SWWP $90 $EE ;" ;Чтение результата RT (Read Temperature):
MACRO NEW RT "I2C SWWSWRP $90 $AA $91 ;" ;Теперь вводим
.SC и через пол секунды
.RT и получаем в ответ 27.
В сочетании с режимом отключения мк получаем маломощный блютус термометр (энергию пожирает в основном блютус модуль, но в режиме ожидания это ток порядка 2-3 мА .