Ви не увійшли.
Всем привет. Не люблю не законченных тем. "PORTD = value;" работает, проблема заключалась в глюке софта.
Переустановил софт и всё ОК. Прошу прощения за беспокойство.
Kirill, спасибо. Вот это value++; я и проморгал.
P.S. К старости мартышка слаба глазами мозгами стала.
В порт отправить можно, но нужно убедиться, что он полный (по тому как бывает что не полные порты, не хватает ног на корпусе), и на нем ничего не сидело.
По регистрам
DDRx - регистр направления порта, в вашем случае все пины на выход (8-мь единиц в двоичной системе исчисления), следовательно
DDRx = 0xFF;
Для порта D будет так:
DDRD = 0xFF;
а чтобы выводить в порт нужно использовать PORTx = значение;
для порта D будет так:
PORTD = значение;
пример:
uint8_t value = 0; // Переменная типа Byte
void setup()
{
DDRD = 0xFF; // все 8 пинов порта D на выход
}
void loop()
{
PORTD = value++; // Вывод значения value в порт D
}
Неверно выразился. Порты в АВР естественно есть, но в Ардуино они скрыты от программиста. Потому как могут быть любыми, самыми разными. В чём собственно и фишка.))
Для Ардуино неправильно. Ибо нет там портов. Только отдельные пины, с номерами.
К примеру, у меня Ардуино от Интел и чо, в какой порт будем выводить? Или chipKit от PIC...
Та даже у Ардуино Микро порты совсем не те что у Нано, не говоря уже о всяких Тини и пр.)).
По красивому, у AVR нужно читать сигнатуру сначала, с тем что бы определить тип МК, а затем же играться с портами. Только кому оно надо.))
но не факт что это правильно )
отпишитесь по результату.
Спасибо. Лаконично и уверенно.
https://www.arduino.cc/en/Reference/PortManipulation
как все странно )
#include <avr/pgmspace.h>
#include <avr/io.h>
Да, в Ардуино нельзя. Только в обход.))
"... думаю что у вас ТЗ некорректное..." В чём не корректность вопроса ???
"...пишет он почему то в порт D..." - это строка из примера ( Ctrl-C, Ctrl-V быстрее чем тыкать в кнопки).
Если не понятен вопрос, поясняю: вместо "DDRx = B11111110", "DDRx = (Value)?, где Value имя переменной. Примерно вот так мне и хотелось бы увидеть. По моему вопрос не сложный, всего навсего синтаксис языка.
vvr, он имеет в виду что на флешку записал данные некоего скипта, что выставляет 0/1 на неких ногах
и почему то ему нужно это сделать очень быстро и параллельно,
и пишет он почему то в порт D,
IgorT12, я думаю что у вас ТЗ некоректное,
и вам и мне однозначно сюда - http://easyelectronics.ru/author/di-halt
O.K.
Читаю SD Card и каждый считанный байт отдаю в порт. Такой вариант "DDRD = B11111110;" не подходит.
какая то абракадабра
что нельзя, куда нельзя...
всё можно
напишите вашу задачу
Доброго времени суток, любителям и Гуру! ПереГуглил уже не мало, везде говорится что выдать переменную типа byte, в среде Arduino нельзя. Вопрос - или плохо искал, или всё таки нет возможности такой. Пытался решить этот вопрос программно - неполучается . Кто - нибудь сталкивался с этим???
Буду благодарен за любой ответ.