В Attiny85 аналоговый сигнал выдать в двоичном коде
- Войдите на сайт для отправки комментариев
Ср, 16/02/2022 - 21:49
Добрый вечер! как всегда задаю вопрос спецам высокого уровня...
как можно перевести значение полученное с помощью analogRead(...) в двоичный код и потом этот код выдать на какой нибудь порт?
спасибо
какой-то_порт.print(analogRead(...), BIN);
как можно перевести значение полученное с помощью analogRead(...) в двоичный код
а из аналогРид() оно в каком коде выходит, не в двоичном? :)
вопрос месяца прям....
Дорогой holl, рискну предположить что вам явно не нужен никакой "двоичный код" (ну или вы неверно выразились). Не стоит прикидываться умнее, чем вы есть - обьясните простыми словами. в чем задача-то?
спасибо, сейчас попробую
как можно перевести значение полученное с помощью analogRead(...) в двоичный код
а из аналогРид() оно в каком коде выходит, не в двоичном? :)
вопрос месяца прям....
ну где то в мк хранится в двоичном, но мне его нужно выдать на выход
мне его нужно выдать на выход
на какой выход? И зачем именно в двоичном?
мне его нужно выдать на выход
на какой выход? И зачем именно в двоичном?
запись параметров ведется лог анализатором и параметр напряжения я там могу увидеть только в двоичном коде
запись параметров ведется лог анализатором и параметр напряжения я там могу увидеть только в двоичном коде
я так и знал :)
Теперь знайте и вы - для логанализатора разницы между этими тремя строчками нет:
print(255)
print(0xFF)
print(0b11111111)
разница между двоичными, десятичными и шестнадцатиричными числами существует только при чтении их ЧЕЛОВЕКОМ, для компа они все равнозначны.
Вообще я сразу был уверен, что услышу что-то подобное, поэтому и просил вас озвучить саму задачу, а не путь решения. Вопрос очень распространенный, новички, не знающие компа, часто пытаются "конвертировать числа из одной системы в другую", не понимая. что это абсолюно ненужная работа
вот вернула функция чтения 255 как я это могу увидеть на логическом анализаторе?
Подскажите как это синтаксически правильно реализовать.
request for member 'print' in 'out', which is of non-class type 'int'
вот вернула функция чтения 255 как я это могу увидеть на логическом анализаторе?
вы какой порт-то логанализатором читаете? Serial ?
вот вернула функция чтения 255 как я это могу увидеть на логическом анализаторе?
вы какой порт-то логанализатором читаете? Serial ?
я использую тиньку 85
ею измеряю и с нее же и хочу отправлять измерения на анализатор
request for member 'print' in 'out', which is of non-class type 'int'
пипец дорогая редакция...
Вы что пытаетесь сделать, печатать оператором print в цифровой пин? Вы хоть чуть понимаете, как работает МК?
какой-то_порт.print(analogRead(...), BIN);
как тут подсказали так и пытаюсь
ею измеряю и с нее же и хочу отправлять измерения на анализатор
ничего не выйдет. Даже если отвечься от того, что запись числа в пин - это неистовый бред.... то еще
Логанализатор умеет читать только известные протоколы - Serial i2c spi
как тут подсказали так и пытаюсь
вы бредите.
как тут подсказали так и пытаюсь
вы бредите.
Вы глубоко ошибаетесь!!!
Вы глубоко ошибаетесь!!!
может я и ошибаюсь - но у вас ничего не выйдет
ею измеряю и с нее же и хочу отправлять измерения на анализатор
ничего не выйдет. Даже если отвечься от того, что запись числа в пин - это неистовый бред.... то еще
Логанализатор умеет читать только известные протоколы - Serial i2c spi
при чем читать или писать????
мне просто надо на выход отправить набор 1 и 0.
мне просто надо на выход отправить набор 1 и 0.
напишите программу для этого, метод print для этого не подходит
похоже вы куда более дере...новичок, чем я думал...
более глубже опишу задачу.
я буду фиксировать пакеты которые отправляются на плату инверторного компрессора холодильника. Но так как он работает на разных оборотах(соответсвенно разный ток потребления) то через гальваническую развязку мне нужно контролировать этот ток и потом проанализировать эти пакеты...
А ток контролировать нужно для того что бы я знал когда именно изменились отправляемые пакеты так как по времени запись будет вестись около 3 часов
более глубже опишу задачу.
Не очень понял, как именно вы собрались ловить пакеты - уж не оператором ли аналогРид() ? - с вас станется... Но ладно, это пока несущественно
возьмите внешнюю ЕЕПРОМ типа at24xx и пишите на нее в обычном цифровом формате
То что вы придумали - это дурость несусветная
более глубже опишу задачу.
возьмите внешнюю ЕЕПРОМ типа at24xx и пишите на нее в обычном цифровом формате
То что вы придумали - это дурость несусветная
это только усложнит мою задачу. Мне нужно проанализировать пакеты на экране монитора, а не в памяти EEPROM
Мне нужно проанализировать пакеты на экране монитора, а не в памяти EEPROM
пакеты состоят из 0 и 1 ? - значит это числа и совершенно незачем их читать с экрана, можно преоразовать в числа и записать в память
Вообще у меня впечатление, что я разговариваю с третьеклассником, который спрашивает, как построить синхрофазотрон. Вы хоть чуть-чуть в компьютерах разбираетесь или вы просто мастер по ремонту холодильников, который польстился на рекламу "ардуина - это просто" ?
тогда по простому....
как мне выдать на ногу байт значения полученного функцией analogRead?
Физческий факультет РГУ цифровые методы формирования и обработки сигналов закончил 20 лет назад
вот я иногда думаю что очень простой(для вас) вопрос рождает такую палемику и наводит на мысль что вы тут находитесь только для того чтобы блестнуть своей чешуей. Видите же что человек не знает каких то моментов и вы давай насыпать (аааа....не знаешь. аааа школьник)это вы себя как пацаны вчерашние ведете хвастунишки.
я зашел в раздел песочница, поэтому не надо пальцы гнуть
В тиньке сериала нет что ли? Я не совсем в курсе.
как мне выдать на ногу байт значения полученного функцией analogRead?
написать программу.
Разбиваете байт на биты и "мигаете" пином, как светодиодом
про сериал я ему намекал :)
ему не нужен сериал, он хочет голым пином посылать сигнал в пространство
Физческий факультет РГУ цифровые методы формирования и обработки сигналов закончил 20 лет назад
тем более удивительно
Диплом купил, наверно?
На сайте есть раздел программирование. Прочитал бы раз вопроса не было бы. Наводка - shiftOut.
как мне выдать на ногу байт значения полученного функцией analogRead?
написать программу.
Разбиваете байт на биты и "мигаете" пином, как светодиодом
в том то и дело что именно это я и хотел спросить синтаксис этой операции
в том то и дело что именно это я и хотел спросить синтаксис этой операции
синтаксис языка Си. А программу вы должны написать сами, полностью готового нет.
Хотя некоторые варианты вам уже накидали - можно использовать shiftOut(), можно вывод в Сериал, но работу с данными все равно придется писать самому.
Не проще ли выводить все в терминал без наворотов с логанализатором, пишущим три часа кряду?
а как я потом это буду анализировать?
я не знаю некоторых терминов. Например терминал
в том то и дело что именно это я и хотел спросить синтаксис этой операции
синтаксис языка Си. А программу вы должны написать сами, полностью готового нет.
Хотя некоторые варианты вам уже накидали - можно использовать shiftOut(), можно вывод в Сериал, но работу с данными все равно придется писать самому.
абсолютно согласен, я не прошу написать мне программу.
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
что здесь это (data >> 8) обозначает?
абсолютно согласен, я не прошу написать мне программу.
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
что здесь это (data >> 8) обозначает?
Вы просите ни много, ни мало научить вас программированию. Здесь это никому не нужно. Почитайте для начала какой-нибудь учебник, тогда вопросы типа "что такое умножение" у вас отпадут сами собой
можно использовать shiftOut(),
Для shiftOut() нужно 2 пина, а ТС хочет один. Так что тут либо Serial, либо в манчестерском коде.
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
что здесь это (data >> 8) обозначает?
Вы неудачно выбрали фрагмент кода.
Но в данном случае это именно тот байт, который в последовательном коде будет выдан на пин dataPin. Но при этом на другой пин clock должен быть выдан синхросигнал. Так что, строго говоря, Вы передаете байт не через один, а через два пина.
можно использовать shiftOut(),
Для shiftOut() нужно 2 пина, а ТС хочет один. Так что тут либо Serial, либо в манчестерском коде.
Нету на тиньке сериала
Для shiftOut() нужно 2 пина, а ТС хочет один. Так что тут либо Serial, либо в манчестерском коде.
Нету на тиньке сериала
Ну в таком случае и Манчестера тоже на тиньке нет. Serial это прототокол. А его можно и на софтверном уровне организовать.
синхронизация не важна, мне нужно примерно раз в 10 секунд видеть какое напряжение
обьясните мне пожалуйста синтаксис, ну не понимаю я его
// Последовательная передача в режиме
MSBFIRST int data = 500;
// сдвигаем и выводим старший байт
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
// сдвигаем и выводим младший байт
shiftOut(dataPin, clock, MSBFIRST, data);
кого они сдвигают и какой командой?
это циклическая операция или как правильно ей пользоваться?
это циклическая операция или как правильно ей пользоваться?
да не факт, что оно вообще заработает.
Понимаете, вся ваша затея - это гланды через Ж. И как мало найдется хирургов, кто имел подобный опыт :) - так и тут у нас подобной ерундой никто не занимался.
Дурак иногда такое выдумает, что 10 мудрецов сидят репу чешут...
Так что пробуйте, потом нам расскажете.
Если б такая задача встала передо мной (не дай бох) - я бы все же тупо разбивал байт на 8 битов и по одному выводил бы их на пин
так как это сделать??
я с самого начала это и просил
или где это прочитать?
так как это сделать??
я с самого начала это и просил
ну мало ли что вы просили, у нас тут за новичков код не пишут
Вот вам примерчик:
выведет байт x на пин pin в порядке LSBFIRST (младший бит первым) с частотой 100 Гц примерно
Если ты прочитал инструкцию к зелёнке, как ты думаешь, возьмут тебя на работу хирургом?