Ошибка в описании контроллера на Arduino.ru
- Войдите на сайт для отправки комментариев
Вс, 03/11/2013 - 00:15
Mega 2560
на сайте Arduino.ru:
1 | PWM: 0 до 13. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite(). |
на сайте Arduino.cc:
1 | PWM: 2 to 13 and 44 to 46. Provide 8-bit PWM output with the analogWrite() function. |
В результате fade дисплея на пинах D0, D1 работал скачкообразно. 4 часа потрачено на перетыкание ЖК в Мегу, Нано, Уно и на разборки, почему при соединении проводками один и тот же код то работает, то нет.
"Поубывав бы..." :)
Поправил. Спасибо
Раз пошла такая пьянка...
в разделе программирование, в описании функции AnalogWrite()
int analogPin = 3; // потенциометр подключен к выходу 3
Изменить на
int analogPin = A3; // потенциометр подключен к выходу A3
в разделе программирование, в описании функции AnalogRead()
кстати, эти ошибки и на родном сайте...
Насколько я понимаю это монописуально.
Такая же шняга с Nano.
на сайте Arduino.ru:
1
I2C: 4 (SDA) и 5 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire (информация на сайте Wiring).
на сайте Arduino.cc:
1
I2C: A4 (SDA) and A5 (SCL). Support I2C (TWI) communication
using
the Wire library (documentation on the Wiring website).
Поменял. Спасибо
Немного не в тему, но тоже про ошибки/опечатки. Когда только начинал познавать программирование Ардуино, в частности работу с функциями по учебнику на форуме http://arduino.ru/Reference/FunctionDeclaration долго не мог въехать, пока не начал изучать учебники по С/С++. Может для других так понятней будет:
Pyotr, вряд ли документация по Ардуино способна заменить учебник по программированию.
Это первое.
И второе (впрочем, именно второе, на мой взгляд, одна из проблем Ардуино): если уж давать примеры кода, то ни в коем случае не такие корявые, как приведенный Вами.
1
int
myMultiplayFunction(
int
x,
int
y) {
2
return
x*y;
3
}
andriano,
1
int
myMultiplayFunction(
int
x,
int
y) {
2
return
x*y;
3
}
а в какой переменной результат брать? или писать int result=myMultiplayFunction(int x, int y);
а если не выходе myMultiplayFunction в результате две переменные...
а почему так написать нельзя:
01
int
k;
// глобальная переменная
02
void
setup
()
03
{
04
Serial
.begin(9600);
05
}
06
07
void
loop
()
08
{
09
int
i = 2;
10
int
j = 3;
11
// int k; // теперь глобальная
12
// k = myMultiplyFunction(i, j); // k содержит 6
13
myMultiplyFunction(i, j);
// вызвали функцию в этой строке
14
Serial
.println(k);
15
delay(500);
16
}
17
18
void
myMultiplyFunction(
int
x,
int
y)
19
{
20
// int result;
21
// result = x * y;
22
// return result;
23
k = x * y;
// записали результат в глобальную переменную
24
}
25
// ЗЫ. написал, а скомпилировать нечем, может вообще не работает :)
26
// может и не в тему вопроса
Можно и так, но хорошим тоном считается - если есть возможность обойтись без глобальных переменных - то это стоит сделать.
В частности, это позволит переносить функции в другой проект простым копированием, без заморочек с прописыванием глобальных и поиском зависимостей при компиляции
Пост с вопросом куда-то пропал, но все равно отвечу.
Функция не может возвращать несколько значений, только одно. Но есть маленький лайфхак: этим единственным значением может быть структура, которая в себе может содержать несколько элементов, в том числе разных типов. Корректные примеры могут привести уважаемые kisoft и ЕвгенийП.
Ну или использовать глобальные переменные.
... если уж давать примеры кода, то ни в коем случае не такие корявые, как приведенный Вами.
Код не мой). см. ссылку. Вполне нормальный пример для понимания основ. Одной переменной больше, одной меньше... и она не static . На практике никому в голову не придёт для умножения двух переменных писать отдельную функцию.
если это умножение используется неоднократно и в разных местах алгоритма - почему бы и нет?
Ну тогда можно
define RESULT (x*y)
и писать в коде:
Serial.print(RESULT);
Да и компилятор, кажется, короткие функции встраивает в код. Я не программист -- сильно не пинать))
Предлагаю снова опустить тему до формата представленного в «Программировании Ардуино» .
Вернуться к посту №6.
ИМХО. Замечания не существенны для формата сжатого справочника Ардуино – можно и учебник по программированию написать, найдется тот, кто сможет дополнить и переделать. И вообще это не замечание, а дополнение и таких можно еще написать море
ВОПРОС: 1) имеет ли смысл создавать тему для дополнения раздела «Программирование Ардуино» примерами и уточнениями? 2) кто внесет изменения и возьмется ли за это? 3) Пожалуйста, дайте право ТС дополнять (возможно, и изменять) первый пост всегда!!!