Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.01.2014, 00:30   #11
DmitryVS
Junior Member
 
Регистрация: 27.11.2013
Адрес: Москва
Возраст: 45
Сообщений: 12
Вес репутации: 0
DmitryVS is an unknown quantity at this point
По умолчанию Re: Arduino, digitalRead(), замена, работа через порт

Цитата:
Сообщение от sunjob Посмотреть сообщение
хотелось бы УСЛЫШАТЬ МНЕНИЯ:
- где можно и корректно использовать "такую замену" ардуиновским функциям
- где нет
- какие особенности
- подводные камни
- итд
Сразу скажу, это моя радикальная точка зрения, я её никому не навязываю, но и менять не вижу смысла. Считаю, что использовать Wiring из ардуиновских библиотек вредно и вообще не следует никогда. Функция digitalRead() и является её частью. Суть состоит в том, что эта штука никакого функционала не добавляет, является обёрткой, якобы повышающей удобство кодинга, а на деле только поощряющей быдлокодерство. Её применение на такой слабенькой платформе как AVR является полным абсурдом, т.к. пожирает ресурсы системы на порядки больше, чем непосредственно функциональный код. Для того, чтобы удивиться, достаточно без задержек подрыгать ножкой через digitalWrite() и напрямую и померить частоту меандра. Хотя, можно просто пробежаться по исходникам и прикинуть, сколько это будет тактов вместо одного.

Для себя я создал минимальный набор библиотек переделанных из дистрибутива Ардуины, который позволяет с минимальными переделками подключать к своим проектам дополнительные полезные библиотеки для неё же, плюс всё что душе угодно и собирать всё в среде AVR Studio. Так мной был почти полностью выдран Wiring (кроме кода для функций задержек) и все обращения к железу я всегда переписываю напрямую. Это к вопросу, возможно ли это. Да, не только возможно, но и крайне полезно для производительности. Никаких особенностей нет, кроме того, что надо внимательно прочитать даташит на AVR'ку и понять что и как управляется. С этого вообще и надо начинать знакомиться с МК, но вот Ардуина напрочь отбивает такое желание.

Если интересно, как собирать ардуиновские проекты под AVR Studio, могу сделать отдельный пост.
DmitryVS вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:00. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика