Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как вывести 10 бит АЦП через один вывод
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
ikm
Подскажите как выполнить операцию вывода 10-ти бит, не на весь порт, а на одну ножку.
К тому же в CV AVR, он эти 10 бит сразу записывает в как 16 битное число.
Ответ, на вопрос для чего мне это нужно: Хочу видеть значение которое выдает АЦП при измерении. т.е. усредняться и отфильтровывается не будет, мне нужно текущее число со всеми шумами и т.д.

А еще лучше порекомендуйте книгу по AVR в которой применяется компилятор CV AVR (кроме Лебедева М.В.)
Smoky
Цитата(ikm @ Dec 13 2016, 19:43) *
Подскажите как выполнить операцию вывода 10-ти бит, не на весь порт, а на одну ножку.
К тому же в CV AVR, он эти 10 бит сразу записывает в как 16 битное число.
Ответ, на вопрос для чего мне это нужно: Хочу видеть значение которое выдает АЦП при измерении. т.е. усредняться и отфильтровывается не будет, мне нужно текущее число со всеми шумами и т.д.

А еще лучше порекомендуйте книгу по AVR в которой применяется компилятор CV AVR (кроме Лебедева М.В.)


Интерфейс 1Wire.
esaulenka
Для начала хорошо б определиться, ГДЕ надо увидеть это значение.

Вместо 1-wire лучше использовать uart. При работе только на передачу (или только на приём) достаточно одного сигнального провода. И с компьютером легче сопрячь (методом покупки любого переходника uart<>usb).
YAM
Полностью поддерживаю предыдущего оратора!
И выводить сразу в нужном виде, например в десятичном, и смотреть в любой терминальной программе.
rx3apf
Тем не менее, идея "1-wire" (точнее, что-то аналогичное по сути, PWM-модуляция) может пригодится, если нет свободного UART, или не хватает его быстродействия.
ikm
Цитата(Smoky @ Dec 13 2016, 17:36) *
Интерфейс 1Wire.


1Wire можно сконфигурировать только под один из портов (в,с,d), а не под все сразу. Мне нужно сразу четыре таких ноги.

Для пояснения, мне нужен не интерфейс, а только одна ножка.
Я думал что то типа побитового выставления 1 или 0 на ножке выхода.
Т.е. считываем 10 бит, выставляем его на PORTB.0, за тем 9-ый бит и т.д.
Или может я слишком мудрю. И можно определить переменную как word и загнать её сразу в нужную ножку?
ViKo
Именно, мудрите непонятно что. По одному проводу выводят последовательно, бит за битом, пока все ваше слово не вылезет. Потом пауза. Или старт, стоп вокруг байта. Потом опять.
УАРТ так и делает.
Serhiy_UA
Цитата(ikm @ Dec 13 2016, 17:43) *
мне нужно текущее число со всеми шумами и т.д.
Шумы можно наблюдать и в интегральном коде (число непрерывных единиц к нем равно значению самого числа).
Для этого подойдет широтно-импульсную модуляция, что есть в каждом микроконтроллере.
В этом случае осциллограф надо синхронизировать началом импульса ШИМ, а шумы, в виде дребезга, просматривать на конце импульса.
Двоичный или десятичный код не позволят сделать оценку шумов без передачи их в компьютер.

По моему эту идею уже высказал rx3apf...
rx3apf
Не, я-то подразумевал побитовый выход с PWM-модуляцией для каждого бита (например, "0" - 1 такт, "1" - 2 такта). А вывести результат преобразования через аппаратный PWM - тоже интересный вариант.
Onkel
Цитата(ikm @ Dec 13 2016, 16:43) *
Подскажите как выполнить операцию вывода 10-ти бит, не на весь порт, а на одну ножку.
К тому же в CV AVR, он эти 10 бит сразу записывает в как 16 битное число.
Ответ, на вопрос для чего мне это нужно: Хочу видеть значение которое выдает АЦП при измерении. т.е. усредняться и отфильтровывается не будет, мне нужно текущее число со всеми шумами и т.д.

А еще лучше порекомендуйте книгу по AVR в которой применяется компилятор CV AVR (кроме Лебедева М.В.)

"на одну ножку" - посмотрите протокол NRZ, его нынче в адресных светодиодах ws2812 используют, так что он весьма широко распостранен, правда наиболее широко распостранен 800 кГц версия, но вроде есть и на 200 кГц приемники со светодиодами. Если хотите смотреть в реальном времени - подключите ленту, и по яркости будете видеть, как ползет сигнал, что-то вроде старинного прибора записи на светочувствительную ленту будет.

В СV есть код-генератор (Code Wizard), почти как Cube для stm32, можете задать ему все нужные параметры всей периферии, а потом посмотреть на код, и help в CV имхо достаточный. У вас полная, не учебная версия CV?
ikm
Картинка к чему?
Да, визардом умею пользоваться, периферии никакой не будет, дальше идет в аналоговую часть. Вот все равно не понял Вас, как там настроить четыре независимых "ноги"?
Цитата(ViKo @ Dec 14 2016, 10:33) *
Именно, мудрите непонятно что. По одному проводу выводят последовательно, бит за битом, пока все ваше слово не вылезет. Потом пауза. Или старт, стоп вокруг байта. Потом опять.
УАРТ так и делает.

Не могли бы Вы привести пример, как правильно выводить последовательно, если не принимать в расчёт УАРТ (ведь мне нужно 4 таких канала, а УАРТ один).
ViKo
Цитата(ikm @ Dec 15 2016, 14:31) *
Не могли бы Вы привести пример, как правильно выводить последовательно, если не принимать в расчёт УАРТ (ведь мне нужно 4 таких канала, а УАРТ один).

Сначала опишите подробнее, что вы хотите сделать. И зачем? А то был 1 канал, стало 4. Это что, курсовой проект, что ли?
Выводите все каналы по одному проводу. 4 слова. В каком формате? В каком нравится. Здесь уже посоветовали несколько.
P.S. В один УАРТ можно 444 канала вывести, и еще останется... rolleyes.gif
ikm
Цитата(ViKo @ Dec 15 2016, 14:57) *
Сначала опишите подробнее, что вы хотите сделать. И зачем? А то был 1 канал, стало 4. Это что, курсовой проект, что ли?
Выводите все каналы по одному проводу. 4 слова. В каком формате? В каком нравится. Здесь уже посоветовали несколько.
P.S. В один УАРТ можно 444 канала вывести, и еще останется... rolleyes.gif

Нет, это не курсовой проект, с курсовыми я лет как 10 назад закончил.
Расширяю кругозор в области работы на МК.
Я не писал в начале, что у меня один канал, я спрашивал как вывести на одну ножку последовательно значения полученные в АЦП. Возможно это мое упущение, но не подумал, что мне могут рассказывать про УАРТ и 1 Wire.
Скорее всего ответ на мой вопрос лежит в области применения таймеров и PWM, но думал, что по проще можно. Вот только таймер 16-ти битный только один.
Задача именно такая, как и в начале я писал, вывести через одну ножку битовую последовательность с АЦП и еще с трёх ножек обработанные с помощью наложением маски.
ViKo
Цитата(ikm @ Dec 15 2016, 15:33) *
Скорее всего ответ на мой вопрос лежит в области применения таймеров и PWM, но думал, что по проще можно.
Задача именно такая, как и в начале я писал, вывести через одну ножку битовую последовательность с АЦП и еще с трёх ножек обработанные с помощью наложением маски.

А ЦАП там есть? Выведите на него. rolleyes.gif

Пусть таймер выдает прерывание с интервалом, которым будете бит за битом выводить. По этому прерыванию и выдвигайте битики слова, пока не кончатся. А как кончатся, другое слово выдавайте... А чтобы синхронизацию сделать, на другую ножку выдайте один импульс, когда начинаете все свои слова выдавать.

Сначала напишите, что вы уже сделали, что не нравится, тогда и советы будут определенные.
ikm
ЦАП нет, атмега8.
Мне не нужна синхронизация.
А зачем прерывание таймера, почему нельзя по прерыванию окончания АЦП преобразования сделать следующее:
считать младший бит (10) значения ADCW сдвинув на 9 позиций в право (ADCW>>9) и вытавлять это значение PORTB.1 напрямую или через переменную
затем считываем девятый бит (ADCW>>8) и выставляем это значение на PORTB.1 и т.д. перебрав все 10 бит полученого значения.
Вот только вопрос, если я буду "отбрасывать" лишние значения, они будут удаляться или просто игнорироваться при считывании?
Затем запускать повторно считывания АЦП.

прежде чем, что то делать, лучше провести анализ, а если нет опыта спросить у других.
А то если провести аналогию, блок питания на 5В можно сделать несколькими путями. Например взять трансформатор и выпрямить. А потом быть недовольным его габаритами и весом. Спросить на форуме, что мне с этим делать.
zltigo
Цитата(ikm @ Dec 15 2016, 16:06) *
Спросить на форуме, что мне с этим делать.

Ваши проблемы начались с того, что Вы даже спросить на форуме не смогли. По крайней мере я не заметил в этой теме ни одного понявшего Ваше желание sad.gif.
Так что вместо упреков в том, что Вам начали рассказывать про UART и прочее, соберитесь со своим мыслями и попрбуйте их изложить. Судя по беспомощности Вами ранее написанного, Вам для начала следует вообще забыть про слова АЦП, вывод и 10 бит и постараться просто сформулировать задачу взаимодействия контролера с каким-то внешним устройством.

ViKo
Прочитайте ADCW в отдельную переменную и выдвигайте ее. Замаскировал все биты, кроме младшего, сравнил результат с нулем, послал в порт в зависимости от результата. Сдвинул переменную. И т.д.
Onkel
действительно, непонятно, что вам нужно на выходе - что-то аналоговое (если речь про шим зашла) или как-то сформировать цифровой последовательный сигнал?
Кстати если мало уартов - сформировать уарт на выход нетрудно, можно хоть десять их сформировать, нужен только один таймер.
Может будет яснее, если вы скажете, что вы будете подключать к мк, для чего выход?
ikm
Цитата(zltigo @ Dec 15 2016, 17:23) *
Ваши проблемы начались с того, что Вы даже спросить на форуме не смогли. По крайней мере я не заметил в этой теме ни одного понявшего Ваше желание sad.gif.
Так что вместо упреков в том, что Вам начали рассказывать про UART и прочее, соберитесь со своим мыслями и попрбуйте их изложить. Судя по беспомощности Вами ранее написанного, Вам для начала следует вообще забыть про слова АЦП, вывод и 10 бит и постараться просто сформулировать задачу взаимодействия контролера с каким-то внешним устройством.

С чего вы взяли, что у меня начались проблемы?
Спасибо большое, за анализ написанных мною ранее "трудов".
Я никого не упрекал, а наоборот извинился, что не предположил, что мне могут посоветовать УАРТ и не описал полностью задачу сначала.
Я бы тоже посоветовал Вам, перестать смотреть на всех с высока и не лезть с ролью доблестного рыцаря в защиту обиженных и угнетенных, для это го есть модераторы.
Цитата(ViKo @ Dec 15 2016, 17:26) *
Прочитайте ADCW в отдельную переменную и выдвигайте ее. Замаскировал все биты, кроме младшего, сравнил результат с нулем, послал в порт в зависимости от результата. Сдвинул переменную. И т.д.

Спасибо.
Вот так:

ADC_ch0=ADCW;

ADC_ch0_temp=ADC_ch0 & 0x01 // битовая маска на младший 10-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;

ADC_ch1_temp=ADC_ch0 & 0x02 // битовая маска на 9-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;
....

ADC_ch0_temp=ADC_ch0 & 0x200 // битовая маска на 1-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;
ViKo
А почему не циклом?
for (int i = 10; i > 0; i--) {
ADC_temp >>= 1;
...
}
XVR
Цитата(ikm @ Dec 16 2016, 10:41) *
ADC_ch0=ADCW;

ADC_ch0_temp=ADC_ch0 & 0x01 // битовая маска на младший 10-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;

ADC_ch1_temp=ADC_ch0 & 0x02 // битовая маска на 9-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;
....

ADC_ch0_temp=ADC_ch0 & 0x200 // битовая маска на 1-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;

Во первых это работать не будет. Во вторых, даже если поправить косяки в коде (и даже если переделать его на один цикл, как ViCo предлагал), вы на PORTB.1 получите кашу из импульсов. Что вы с ними потом делать будете?
Serhiy_UA
Есть еще способ, когда выдаются не полные значения измеренных кодов, а их приращения от одного измерения к следующему (в народе это называют - АДИКМ).
В некоторых случаях, и возможно Вашем, с микроконтроллером, это может быть полезным.
В свое время была задача оценить точность АЦП в 2МГц на 16 разрядов на стабильном синусе. Остановились на том, что без передачи кодов в компьютер с последующей обработкой не обойтись, да и генератор синуса тоже должен был быть не из дешевых.
zltigo
Цитата(ikm @ Dec 16 2016, 09:41) *
Вот так:

ADC_ch0=ADCW;

ADC_ch0_temp=ADC_ch0 & 0x01 // битовая маска на младший 10-ый бит АЦП
if (ADC_ch0_temp= 0) PORTB.1=0;
if (ADC_ch0_temp= 1) PORTB.1=1;

Вопросов больше нет. Это плинтус sad.gif на уровне которого обсуждать просто нечего sad.gif

ikm
Цитата(XVR @ Dec 16 2016, 12:53) *
Во первых это работать не будет. Во вторых, даже если поправить косяки в коде (и даже если переделать его на один цикл, как ViCo предлагал), вы на PORTB.1 получите кашу из импульсов. Что вы с ними потом делать будете?

Почему Вы тратите свое время на написание поста с вопросом- зачем мне это надо?
Ведь намного полезнее указать мне на мои косяки да бы они не повторялись.

И что вы подразумеваете под "кашей"?

Если Вам и правда так интересно зачем мне это всё, то лишь для того чтобы посмотреть осцилом и затем предать на антенну. Причем сразу скажу никакой второй антенны и приёмника не будет.

Цитата(zltigo @ Dec 16 2016, 13:58) *
Вопросов больше нет. Это плинтус sad.gif на уровне которого обсуждать просто нечего sad.gif


Мне очень важен Ваш уровень, можете измерить его линейкой и добавить измерения в подпись.
Onkel
не будет работать потому что у вас = вместо ==, и не будет работать потому что вы не сможете отличить 1111000000 от 0000001111 - на экране осциллографа они будут выглядеть одинаково
ViKo
И потому, что сравнивать придется не с 0 и 1, а каждый раз с разными.
ikm
Цитата(Onkel @ Dec 16 2016, 17:04) *
не будет работать потому что у вас = вместо ==, и не будет работать потому что вы не сможете отличить 1111000000 от 0000001111 - на экране осциллографа они будут выглядеть одинаково

А мне и не надо их отличать. А за синтаксис спасибо. При отладке кода в симуляторе (когда конечно до этого дойдет), заведу для синхронизации на доп ножку начало преобразования и от неё синхронизирусь.
Цитата(ViKo @ Dec 16 2016, 17:11) *
И потому, что сравнивать придется не с 0 и 1, а каждый раз с разными.

Да, это я поспешил с выводами и забыл,что при "И" остается единица, но в том бите который я маскирую. Т.е. верно будет только для сравнения младшего бита, а потом надо сравнивать результат с 0х02, 0х04 ... 0х200. Ну и конечно тоже завести эту переменную на цикл увеличения, как Вы ранее посоветовали.
ViKo
И книжку Кернигана и Ричи "Язык программирования C" скачайте. Если вдумчиво прочитать, да еще попробовать задания выполнить, то можно сильно продвинуться.
XVR
Цитата(ikm @ Dec 16 2016, 14:04) *
Почему Вы тратите свое время на написание поста с вопросом- зачем мне это надо?
Потому что то, что вы написали невозможно применить в каких либо практических целях. Вот я и пытаюсь понять, что вы патались сделать. 'Вывести 10 бит через ножку' - это не ответ, это ваши хотелки.

Цитата
Если Вам и правда так интересно зачем мне это всё, то лишь для того чтобы посмотреть осцилом и затем предать на антенну.

Вот с этого и надо было начинать. Что бы на осцилографе можно было разобрать что имено выводится, нужно выводить так, что бы визуально можно было отделить каждый бит друг от друга и все 10 бит вместе от следующих 10 бит.
Цитата
И что вы подразумеваете под "кашей"
То, что вы получите если выведите все 10 бит 'как есть' друг за другом.

Можно выводить например так:
  • 0 выводится коротким импульсом лог 1
  • 1 выводится длинным импульсом лог 1
  • Разделяются 0 и 1 коротким импульсом лог 0
  • Биты выводятся начиная с младшего
  • После 10 битов делается пауза (в 2 раза длиннее чем импульс 1)

Код
void delay(int dly)
{
volatile char c=i;
while(c--);
}

void send_adc(int value)
{
int cnt;
for(cnt=0;cnt<10;++cnt, value>>=1)
{
   PORTB.1 = 1;
   delay(1+(value&1));
   PORTB.1 = 0;
   delay(1);
}
delay(4);  
}
skripach
Может ТСу нужен R-2R ЦАП чтобы осциллографом наблюдать. Чет вспомнилось. santa2.gif
ikm
Цитата(XVR @ Dec 16 2016, 19:50) *
Потому что то, что вы написали невозможно применить в каких либо практических целях. Вот я и пытаюсь понять, что вы патались сделать. 'Вывести 10 бит через ножку' - это не ответ, это ваши хотелки.

А почему я не могу реализовать "мои хотелки", почему для вас вывод значений АЦП наружу не задача. Причем мне нужно будет сразу 4 канала вывода этих значений с наложением на каждый определённый алгоритм маскирования.
Как я понимаю исходя из своих "накопленных" знаний, это можно либо побитовым сдвигом через ножки и возможно через PWM с использованием таймеров. Я выбрал то, что пока мне понятнее на пальцах. Не знаю назовите этот девайс генератором кода, если Вам так будет проще. На осциле, я буду смотреть только на первом этапе кода соберу весь код, и то на предмет, того, что на "ножке" есть импульсы, и тут наверное лучше дописать ещё одну ногу для выхода синхронизации посылки 10 бит. потом эта система будет сама в себе.
За код правда спасибо. Вот только не понятно, зачем объявлять без регистровую переменную с, и как определена i ?

Цитата(ViKo @ Dec 16 2016, 12:08) *
А почему не циклом?
for (int i = 10; i > 0; i--) {
ADC_temp >>= 1;
...
}

Ну циклы мне писать еще рано, больше вероятность что запутаюсь.
Если я правильно понял, то ADC_temp >>= 1 сдвигает на один бит в каждом цикле, т.е. 9-ый бит встанет на место 10 бита, но ведь он это сделает в первом же цикле и я потеряю 10-ый бит?
Если предположить, что я не так понял, тогда код цикла будет выглядеть так:

for (int i = 10; i > 0; i--) {
ADC_temp >>= 1;
ADC_temp&=0x01 // битовая маска на младший 10-ый бит АЦП
if (ADC_temp== 0) PORTB.1=0;
if (ADC_temp!= 0) PORTB.1=1;
}
dimka76
Настройте вывод ШИМ на ножку.
10-ти битный ШИМ.
Скважностью этого ШИМа будет значение АЦП.
И смотрите стрелочным вольтметром значения вашего ацп.
ViKo
Цитата(ikm @ Dec 19 2016, 11:45) *
Ну циклы мне писать еще рано, больше вероятность что запутаюсь.
Если я правильно понял, то ADC_temp >>= 1 сдвигает на один бит в каждом цикле, т.е. 9-ый бит встанет на место 10 бита, но ведь он это сделает в первом же цикле и я потеряю 10-ый бит?

Правильно будет сначала выдать бит в порт, а потом сдвинуть. Т.е. ADC_temp >>=1 должна быть в конце тела цикла. Всего и делов то.
ikm
Цитата(dimka76 @ Dec 19 2016, 12:57) *
Настройте вывод ШИМ на ножку.
10-ти битный ШИМ.
Скважностью этого ШИМа будет значение АЦП.
И смотрите стрелочным вольтметром значения вашего ацп.

В атмега 8 всего один 16 битный таймер и два 8-ми битных. Что из них вы предлагаете использовать в качестве 10-ти битного, с учётом того, что мне надо будет четыре канала выхода?
Ну раз вы предложили этот вариант, может прокоментируете мои представления о таймерах:
1.Получаем значения АЦП заносим OCR0A по которому таймер сбрасывается и изменяется состояние на ноге например PORTB.1
2. Так же мы можем независимо дать значение OCR0A по которому таймер сбросится и изменит состояние на ноге например PORTB.2
вот только у меня тут вопрос ведь если значение для OCR0A будет меньше чем, для OCR0В, то до события когда он досчитает до OCR0В мы можем и не дойти?
Или если таймер не сбрасывается, а просто выдает прерывание на значении OCR0A и продолжает считать дальше пока не дойдет до 255, то количество отсчётов между первым значением OCR0A и новым которое я задам при следующем считанным значением АЦП будет не одно и тоже , что если бы он начал отсчитывать опять с нуля- значит скважность будет разная?
Цитата(ViKo @ Dec 19 2016, 13:38) *
Правильно будет сначала выдать бит в порт, а потом сдвинуть. Т.е. ADC_temp >>=1 должна быть в конце тела цикла. Всего и делов то.

Значит, я Вас правильно понял, просто смутило многоточие стоящее после.
Еще раз спасибо.
dimka76
Цитата(ikm @ Dec 19 2016, 13:57) *
Ну раз вы предложили этот вариант, может прокоментируете мои представления о таймерах:

Во-первых, в datasheet все хорошо изложено.
Во-вторых, если вы не знакомы с английским, то по AVR написано несколько русскоязычных книг.

А ваше представление не верно.
XVR
Цитата(ikm @ Dec 19 2016, 11:45) *
А почему я не могу реализовать "мои хотелки", почему для вас вывод значений АЦП наружу не задача.
Я немного неправильно выразился. Ваша задача - не вывести наружу значения от АЦП через ножку, а увидеть их на осцилографе, я прав?
Просто вывести АЦП на ножку недостаточно - 'это' еще надо будет зафиксировать и понять, что именно было выведено.

Цитата
На осциле, я буду смотреть только на первом этапе кода соберу весь код, и то на предмет, того, что на "ножке" есть импульсы,
Ну если только на предмет 'наличия импульсов', то сойдет.
Цитата
и тут наверное лучше дописать ещё одну ногу для выхода синхронизации посылки 10 бит.
Вот это лучше. Но считывать значение АЦП будет довольно трудоемко, даже с синхронизацией.

Цитата
За код правда спасибо. Вот только не понятно, зачем объявлять без регистровую переменную с, и как определена i ?
с - что бы оптимизатор не выкинул цикл задержки, а i - это dly (описка в тексте)
ikm
Цитата(XVR @ Dec 19 2016, 17:09) *
Я немного неправильно выразился. Ваша задача - не вывести наружу значения от АЦП через ножку, а увидеть их на осцилографе, я прав?
Просто вывести АЦП на ножку недостаточно - 'это' еще надо будет зафиксировать и понять, что именно было выведено.

Нет, не правы, именно вывести наружу задача.
Цитата(XVR @ Dec 19 2016, 17:09) *
Ну если только на предмет 'наличия импульсов', то сойдет.

Это как раз второстепенная задача, чисто посмотреть один раз что код написан правильно.
dimka76
Цитата(ikm @ Dec 20 2016, 10:23) *
Нет, не правы, именно вывести наружу задача.


А почему бы вам просто не воспользоваться UART.
Его можно также программный ногодрыгом реализовать.
На передачу там все очень просто.
esaulenka
Цитата(dimka76 @ Dec 21 2016, 14:59) *
А почему бы вам просто не воспользоваться UART.
Его можно также программный ногодрыгом реализовать.
На передачу там все очень просто.

Да скоро будет уже. Ещё чуть-чуть, и человек разберётся, что длительность его битиков надо делать какой-то одинаково-стандартной, ввести признак "начало битиков" и "конец битиков" - и вот он, программно-ногодрыгный уарт :-)
ikm
Цитата(esaulenka @ Dec 21 2016, 15:55) *
Да скоро будет уже. Ещё чуть-чуть, и человек разберётся, что длительность его битиков надо делать какой-то одинаково-стандартной, ввести признак "начало битиков" и "конец битиков" - и вот он, программно-ногодрыгный уарт :-)


Вы заблуждаетесь, для меня синхронизация моих битиков как раз лишняя, даже губительная для проекта. К тому же зачем городить код в десятки строк для формирования УАРТ, если и так все работает и меня полностью устраивает.

Спасибо еще раз Viko за помощь.
jcxz
Не вчитывался глубоко в топик, но вроде здесь речь идёт о способах передачи данных через один пин?
Интересно - только я один заметил, что уже сам ник топикстартера содержит одно из решений задачи? sm.gif
ikm
Цитата(jcxz @ Dec 22 2016, 10:58) *
Не вчитывался глубоко в топик, но вроде здесь речь идёт о способах передачи данных через один пин?
Интересно - только я один заметил, что уже сам ник топикстартера содержит одно из решений задачи? sm.gif


Ну я бы сказал, что задача последовательный вывод данных, без преобразования в какой либо интерфейс.

И где пояснения к вашему решению?

Да, кстати тема пока закрыта. Просьба отвечать в тему, только с конкретным предложением по коду реализации. А то и так простая задача переросла в помойку с флудом.
jcxz
Цитата(ikm @ Dec 22 2016, 11:27) *
И где пояснения к вашему решению?

Пояснения в гугле. Спросите его о "ИКМ" (импульсно-кодовая манипуляция (модуляция)).
PS: Грешным делом думал, что Вы ник свой выбрали имея в виду один из вариантов решения :-)
ikm
Цитата(jcxz @ Dec 22 2016, 15:59) *
Пояснения в гугле. Спросите его о "ИКМ" (импульсно-кодовая манипуляция (модуляция)).


Типичный ответ человека с поверхностными знаниями : что то где то слышал, а как применять не знаю.
Т.к. для знающего материал хорошо, проще написать пару строк по делу с примером реализацией.
jcxz
Цитата(ikm @ Dec 22 2016, 17:44) *
Типичный ответ человека с поверхностными знаниями : что то где то слышал, а как применять не знаю.
Т.к. для знающего материал хорошо, проще написать пару строк по делу с примером реализацией.

Тут Вам не детский сад - садить на горшок никто не будет, сами учитесь.
Если сами не умеете что-то делать - Вам в раздел "Предлагаю работу".
А о моих знаниях Вам судить и подавно рано.
ikm
Цитата(jcxz @ Dec 22 2016, 19:30) *
Тут Вам не детский сад - садить на горшок никто не будет, сами учитесь.
Если сами не умеете что-то делать - Вам в раздел "Предлагаю работу".
А о моих знаниях Вам судить и подавно рано.


А Вы за всех не решайте. Что "тут". Не хотите "сажать на горшок" проходите просто мимо.
Типа тут форум для тех кто всё умеет делать и просто меряется уровнями?
Ответьте себе зачем Вы вообще заходите в этот раздел, чтобы удостоверится что вы знаете больше чем другие?
zltigo
Цитата(jcxz @ Dec 22 2016, 14:59) *
PS: Грешным делом думал, что Вы ник свой выбрали имея в виду один из вариантов решения :-)

Нет, тогда был-бы PCM sm.gif или ИКМ sm.gif, но не IKM



jcxz
Цитата(ikm @ Dec 22 2016, 20:08) *
Ответьте себе зачем Вы вообще заходите в этот раздел, чтобы удостоверится что вы знаете больше чем другие?

Уважаемый.... я вообще к Вам не обращался. И я Вам ничего не должен. И никто Вам тут ничего не должен.
Не нравится - идите мимо. И чем дальше - тем лучше.
Идите в игнор.

Цитата(zltigo @ Dec 22 2016, 20:17) *
Нет, тогда был-бы PCM sm.gif или ИКМ sm.gif, но не IKM

тот товарищ не PCM и не ИКМ, а $%@$#. Таких слов тут произносить не стоит
ikm
Цитата(jcxz @ Dec 23 2016, 01:33) *
Уважаемый.... я вообще к Вам не обращался.

Батенька, да Вам наверное совсем плохо wacko.gif , а к кому вы обращались тогда?
Или про импульсную-кодовую модуляцию было, так, преамбула, и вы ожидали реакцию, всего интернет сообщества на свою искрометную шутку про ikm?

Цитата(jcxz @ Dec 23 2016, 01:33) *
тот товарищ не PCM и не ИКМ, а $%@$#. Таких слов тут произносить не стоит


Теперь понятно, почему вам близка тема горшков и детского сада, видимо вы еще не выросли из этого возраста, раз всё сводится к тому, чтобы назвать человека писей.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.