Go to file
2023-06-27 00:56:28 +03:00
slave update 2023-06-26 20:22:20 +03:00
.gitignore added working ino scripts 2023-06-21 17:22:44 +03:00
demo.c update main 2023-06-27 00:56:28 +03:00
gpio.c add gpio module 2023-06-27 00:54:44 +03:00
gpio.h add gpio module 2023-06-27 00:54:44 +03:00
i2c.c add gpio module 2023-06-27 00:54:44 +03:00
i2c.h update 2023-06-26 23:58:53 +03:00
main.c update main 2023-06-27 00:56:28 +03:00
pwm.c update 2023-06-26 23:58:53 +03:00
pwm.h update 2023-06-26 23:58:53 +03:00
README.md update 2023-06-26 23:58:53 +03:00

8. Устройство управления контроллером ШИМ.

Описание

Устройство представляет из себя I2C ведущее устройство.

Управляет устройством из задания 7. Имеет 6 кнопок:

  • Включить ШИМ.

  • Выключить ШИМ.

  • Увеличить частоту на 25% от текущего.

  • Уменьшить частоту на 20% от текущего.

  • Увеличить скважность на 10% от текущего.

  • Уменьшить скважность на 10% от текущего.

Пояснения к заданию

  • Состояние ШИМ брать с Master устройста и передавать на Slave устройство.

  • Отправляемые команды - 16 бит, число с фиксированной запятой (12 бит целое, 4 - дробная часть).

Набор команд

Команда Описание
0x01: Включить ШИМ.
0x02: Выключить ШИМ.
0x03: Увеличить частоту на 25% от текущего.
0x04: Уменьшить частоту на 20% от текущего.
0x05: Увеличить скважность на 10% от текущего
0x06: Уменьшить скважность. на 10% от текущего

Описание регистров для I2C

Регистр Описание
TWBR Отвечает за задание битрейта передачи данных. Его значение вычисляется по следующей формуле: ((F_CPU / I2C_FREQ) - 16) / 2. Формула производит округление результата.
TWCR Регистр управления. Содержит в себе биты управления.
TWDR Отвечает за передаваемые или принимаемые данные. В этом регистре хранится один байт данных в памяти.
TWAR Cодержит адрес устройства, по которому микроконтроллер может быть доступен в сети I2C.
TODO: N/A

Описание флагов

Флаг Описание
TWINT Флаг TWINT (TWI Interrupt Flag), показывающий, что операция TWI была выполнена.
TWEN флаг TWEN (TWI Enable), включающий работу TWI интерфейса.
TWEA флаг TWEA (TWI Enable Acknowledge), чтобы включить ответное подтверждение (ACK).
TODO: N/A

Иформация по TW

TWI (Two-Wire Interface) - это двухпроводный последовательный интерфейс для обмена данными, основанный на коммуникационном стандарте I2C (Inter-Integrated Circuit). TWI был разработан компанией Atmel (теперь Microchip Technology) и является улучшенной версией I2C.

TWI обеспечивает ориентированную на сообщения линию связи с возможностью мастер-ведомый обмен. Обычно в TWI существует одно устройство, которое устанавливает шину (master), и одно или несколько устройств, которые подключаются к шине в качестве активных (ved) узлов.

TWI работает со скоростями передачи данных от 100 кбит/с до 400 кбит/с, хотя некоторые устройства могут поддерживать скорость в 1 Мбит/с.

Принцип работы TWI основан на использовании двух проводов - SDA (Serial Data) и SCL (Serial Clock). SDA - это линия для передачи данных, а SCL - это линия для синхронизации передачи данных. Модулем TWI можно передавать данные и исполнять команды чтения/записи, после чего мастер подтверждает успешность операции.

TWI нашел широкое применение во многих устройствах, таких как датчики, LCD-экраны, термометры, акселерометры, сенсорные панели, электронные блоки питания и т.д.