Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Microchip I2C: interrupt driven routines
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
A. Fig Lee
В общем валяется у мена PIC18F14K50, которым можно было бы считывать ADC по I2C и переправлять по USB
в компьютер. Онако вопрос - успею ли читать в цикле да еще и USB обслуживать.
Посмотрел на свой MAX9611 - 400 кГц, хорошо. Ну вроде они все поддерживают.
Поискал interrupt driven routines, не нашел. Народ говорит: зачем, че его там читать/писать?
С одной стороны да. С другой стороны бабка 10 копеек, 10 бабок, уже рубль.
Например, читаем структуру из нескольких байт: адрес дивайса, адрес регистра, адрес дивайса, несколько байт.
Итого набегает.

Провел эксперимент. Взял чтение 3х байт подряд из MAX9611 стартуя с регистра 0х08.
Результаты: при 400 кГц I2C порядка 2/3 времени освобождается для других задач.
При 100 кГц освобождается 89%!! Хорошая прибавка к пенсии.

Код не особо продуман и оптимизирован, но можно на нем базироватся.
Пытался сделать универсальным для большинства случаев:
память с одним байтом аддресса, двумя байтами, и без аддресса.

Делюсь, там комменты есть.
evc
Цитата(A. Fig Lee @ May 27 2014, 07:01) *
...


За то, что поделились:
a14.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.