Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ MCS51, AVR, PIC, STM8, 8bit _ преобразователь 0...5v-0...5v

Автор: ARAM.S Oct 20 2010, 04:54

привет друзья прошу сильно не пинать , в ацп и цап не силен ,требуется преобразователь с 0...5v на 0...5v
как реализовать? надо так чтоб например при входном 1.1в а на выходе было 1.6в и.т.д
очень прошу помогите новичку rolleyes.gif

Автор: DpInRock Oct 20 2010, 05:04

Для начала подумайте над формулировкой вопроса. Телепатов в природе не существует.
Преобразователь 0-5 в 0-5 - это кусок провода.
1.1 в 1.6 - простой усилитель с коэффициентом усиления 1.6\1.1

Автор: ARAM.S Oct 20 2010, 05:15

тогда по порядку , есть сигнал от 0 до 5 вольт надо на выходе МК получит опят таки от 0 до 5 вольт но нелинейно

например

вход = выход
0 = 0
1 = 1.1
2 = 2
2.7 = 3
4 = 3.5

Автор: QingTing Oct 20 2010, 05:27

Цитата(ARAM.S @ Oct 20 2010, 09:15) *
тогда по порядку , есть сигнал от 0 до 5 вольт надо на выходе МК получит опят таки от 0 до 5 вольт но нелинейно

например

вход = выход
0 = 0
1 = 1.1
2 = 2
2.7 = 3
4 = 3.5


Код на выходе АЦП будет являться адресом для памяти в которой будут зашиты коды для ЦАП. Нелинейность получите какую захотите. При разрядности АЦП и ЦАП в 8 бит. потребуется памяти всего 256 байт, можно использовать память программ МК.

Автор: ARAM.S Oct 20 2010, 05:35

дорогой QingTing спасибо тебе, но я совсем новичок , суть я понял но реализовать сам точно не смогу
не подскажите похожи проект с схемой и прошивкой

Автор: QingTing Oct 20 2010, 05:41

Цитата(ARAM.S @ Oct 20 2010, 09:35) *
дорогой QingTing спасибо тебе, но я совсем новичок , суть я понял но реализовать сам точно не смогу
не подскажите похожи проект с схемой и прошивкой


Похожих проектов у меня нет и подобное к сожалению не встречал. Если вы будете работать с AVR и на ассемблере то могу кусок кода написать.

Автор: ARAM.S Oct 20 2010, 05:47

Цитата(QingTing @ Oct 20 2010, 09:41) *
Похожих проектов у меня нет и подобное к сожалению не встречал. Если вы будете работать с AVR и на ассемблере то могу кусок кода написать.


можно кусок кода и схемы на тини 2313?

Автор: Skaf Oct 20 2010, 05:53

Если на Си и если решите делать с таблицей значений (можно например и функциями описать, если аппроксимировать) то массив в памяти программ можно реализовать следующим образом

Код
#include <avr/pgmspace.h>

const prog_char MyArray[] PROGMEM = {0x11, 0x12, 0x23, 0x53, 0xC2 .......}


Автор: ARAM.S Oct 20 2010, 06:07

увы знание не хватает, друзья а заказ на такой проект не возьмете ? и сколько будет это стоит ?

Автор: QingTing Oct 20 2010, 06:32

Цитата(ARAM.S @ Oct 20 2010, 10:07) *
увы знание не хватает, друзья а заказ на такой проект не возьмете ? и сколько будет это стоит ?


Вы откуда? В смысле страна, город?

Автор: ARAM.S Oct 20 2010, 06:57

Армения Ереван, плато через банк, например moneygram

Автор: QingTing Oct 20 2010, 07:06

Цитата(ARAM.S @ Oct 20 2010, 10:57) *
Армения Ереван, плато через банк, например moneygram


Далеко! Если будете делать сами охотно помогу, чем смогу. Просто такие вещи дистанционно сложно делать.

Автор: rezident Oct 20 2010, 07:15

Цитата(ARAM.S @ Oct 20 2010, 11:15) *
тогда по порядку , есть сигнал от 0 до 5 вольт надо на выходе МК получит опят таки от 0 до 5 вольт но нелинейно
Нелинейность описывается аналитически (формулой)?

Автор: ARAM.S Oct 20 2010, 09:03

Цитата(QingTing @ Oct 20 2010, 11:06) *
Далеко! Если будете делать сами охотно помогу, чем смогу. Просто такие вещи дистанционно сложно делать.


ок. а на каком МК лучше это делать ? тини 2313 подойдет?

Автор: QingTing Oct 20 2010, 10:19

Цитата(ARAM.S @ Oct 20 2010, 13:03) *
ок. а на каком МК лучше это делать ? тини 2313 подойдет?


Подойдет, у него 2К памяти программ и 128 байт ОЗУ, этого для данной задачи вполне достаточно. Необходимо выбрать АЦП и ЦАП. ЦАП можно взять AD5310, АЦП AD7477. Можно сделать еще проще взять МК Atmega8 у него есть встроенный АЦП, а ЦАП сделать на R2R матрице.

Автор: ILYAUL Oct 20 2010, 10:20

Цитата(ARAM.S @ Oct 20 2010, 13:03) *
ок. а на каком МК лучше это делать ? тини 2313 подойдет?

эапросто

Автор: ARAM.S Oct 20 2010, 13:15

вот нашел похожий проект, схема+прошивка+исходник , не подскажите будет ли оно работать, и что менять в исходнике , чтобы получит такую линейность который мне нужен

 pic.rar ( 58.04 килобайт ) : 64
 

Автор: rezident Oct 20 2010, 14:41

Еще раз спрашиваю, нелинейность описывается аналитически или ее форма есть результат экспериментальных данных?
Эти данные уже известны? Графический вид нелинейности можно увидеть? С какой точностью нужно повторить преобразование? С какой скоростью или с каким временным разрешением нужно выдавать результат преобразования? Какое выходное сопротивление источника сигнала? Какой выходной ток от преобразователя требуется?
Ответы на вопросы дадут представление о требуемых ресурсах и подвигнут на более правильный выбор компонентов.

Автор: ARAM.S Oct 20 2010, 15:15

Цитата(rezident @ Oct 20 2010, 18:41) *
Еще раз спрашиваю, нелинейность описывается аналитически или ее форма есть результат экспериментальных данных?
Эти данные уже известны? Графический вид нелинейности можно увидеть? С какой точностью нужно повторить преобразование? С какой скоростью или с каким временным разрешением нужно выдавать результат преобразования? Какое выходное сопротивление источника сигнала? Какой выходной ток от преобразователя требуется?
Ответы на вопросы дадут представление о требуемых ресурсах и подвигнут на более правильный выбор компонентов.


да данные уже есть, но не в этом суть , надо с разными датчиками иметь разную линейность, то есть возможность перепрошить плату, в датчике оу , сопротивление не знаю, ток максимум 15 ма

Автор: XVR Oct 21 2010, 09:01

Цитата(ARAM.S @ Oct 20 2010, 17:15) *
вот нашел похожий проект, схема+прошивка+исходник , не подскажите будет ли оно работать,
Будет, но делать будет не то, что вам надо.
Цитата
и что менять в исходнике ,
Все менять crying.gif
Какие частоты у вас на входе? Какая нужна точность?

Автор: ILYAUL Oct 21 2010, 09:30

Вы главное нас не путайте, мы сами запутаемся

У Вас есть N датчиков с которых Вы сняли их характеристики и так как идеальных датчиков нет , то Вы компенсируете их нелинейность добавляя константу для каждого датчика свою. Так?
Что, в итоге , должно сделать Ваше устройство? Что у него на выходе?

Автор: ARAM.S Oct 21 2010, 10:42

Цитата(XVR @ Oct 21 2010, 13:01) *
Будет, но делать будет не то, что вам надо.
Все менять crying.gif
Какие частоты у вас на входе? Какая нужна точность?



частота максимум 3Гц, погрешность максимум +/- 100мв

Цитата(ILYAUL @ Oct 21 2010, 13:30) *
Вы главное нас не путайте, мы сами запутаемся

У Вас есть N датчиков с которых Вы сняли их характеристики и так как идеальных датчиков нет , то Вы компенсируете их нелинейность добавляя константу для каждого датчика свою. Так?
Что, в итоге , должно сделать Ваше устройство? Что у него на выходе?



на выходе Эбу машины

Автор: XVR Oct 21 2010, 10:51

Цитата
частота максимум 3Гц, погрешность максимум +/- 100мв
В таком случае вам подойдет любой МК с АЦП (8ми битов хватит) и ШИМом (8 битов тоже хватит). На выходе фильтр на RC цепочки и повторитель на ОУ.
Массив констант можно зашить прямо в программу и заливать результирующую прошивку (для каждого девайса она будет своя) в МК.
МК желательно 5ти вольтовый

Если будет несколько каналов АЦП и несколько ШИМов можно сделать многоканальный девайс


Автор: ILYAUL Oct 21 2010, 11:33

Цитата(ARAM.S @ Oct 21 2010, 14:42) *
на выходе Эбу машины


Т.е Вы создаете контроллер управления автомобилем?

Автор: ARAM.S Oct 21 2010, 13:54

Цитата(XVR @ Oct 21 2010, 14:51) *
В таком случае вам подойдет любой МК с АЦП (8ми битов хватит) и ШИМом (8 битов тоже хватит). На выходе фильтр на RC цепочки и повторитель на ОУ.
Массив констант можно зашить прямо в программу и заливать результирующую прошивку (для каждого девайса она будет своя) в МК.
МК желательно 5ти вольтовый

Если будет несколько каналов АЦП и несколько ШИМов можно сделать многоканальный девайс


одного канала вполне хватит, ели пропашу не поможете схемой паршивкой очень надо crying.gif , в замен готов помочь с любимы вопросами связной с машинами , диагностика , схема адаптеров+прошивки софт для самостоятельной диагностики rolleyes.gif

Автор: DpInRock Oct 21 2010, 14:02

Огласите марку машины, пожалста. Госномер, цвет. Место дислокации.
Предупрежден - значит вооружен.

Автор: ARAM.S Oct 21 2010, 14:18

Цитата(DpInRock @ Oct 21 2010, 18:02) *
Огласите марку машины, пожалста. Госномер, цвет. Место дислокации.
Предупрежден - значит вооружен.


причом тут это ? Opel Vectra B

Автор: XVR Oct 21 2010, 15:24

Цитата(ARAM.S @ Oct 21 2010, 17:54) *
одного канала вполне хватит, ели пропашу не поможете схемой паршивкой очень надо crying.gif
Если нужна готовая 'паршивка' - то это в раздел 'Предлагаю работу'. Даже если совсем все 'пропашете'

Выбрать МК поможем -

Tiny13
Tiny44 (*)
Tiny24
Tiny26
Tiny861 (*)
Tiny461 (*)
Tiny261
ATMega16/32/64 (*)
AT90PWM??? (*)

и 13 штук у Microchip'а:
PIC12F615
PIC12F617
PIC12F683
PIC12F1822 (*)
PIC16F616
PIC16F716
PIC16F684
PIC16F785
PIC16F818
PIC16F819
PIC16F72
PIC18F2221 (*)
PIC18F2220 (*)

Выбирайте rolleyes.gif

PS. Звездочками помечены МК в которых таблицу коррекции можно хранить в EEPROM'и и оперативно изменять прямо в устройстве (без программатора)

Автор: ARAM.S Oct 21 2010, 15:32

Цитата(XVR @ Oct 21 2010, 19:24) *
Если нужна готовая 'паршивка' - то это в раздел 'Предлагаю работу'. Даже если совсем все 'пропашете'

Выбрать МК поможем -

Tiny13
Tiny44 (*)
Tiny24
Tiny26
Tiny861 (*)
Tiny461 (*)
Tiny261
ATMega16/32/64 (*)
AT90PWM??? (*)

и 13 штук у Microchip'а:
PIC12F615
PIC12F617
PIC12F683
PIC12F1822 (*)
PIC16F616
PIC16F716
PIC16F684
PIC16F785
PIC16F818
PIC16F819
PIC16F72
PIC18F2221 (*)
PIC18F2220 (*)

Выбирайте rolleyes.gif

PS. Звездочками помечены МК в которых таблицу коррекции можно хранить в EEPROM'и и оперативно изменять прямо в устройстве (без программатора)


дорогой XVR вы возметесь за данную работу если попрашу ? конечно за не бесплатно!

Автор: XVR Oct 21 2010, 18:52

Цитата(ARAM.S @ Oct 21 2010, 19:32) *
дорогой XVR вы возметесь за данную работу если попрашу ?
Я очень 'дорогой' rolleyes.gif
Цитата
конечно за не бесплатно!
У меня тут ремонт машины, тыщ так на 60 рублей наклевывается, оплатите? laughing.gif

Автор: ARAM.S Oct 22 2010, 03:46

Цитата(XVR @ Oct 21 2010, 22:52) *
Я очень 'дорогой' rolleyes.gif
У меня тут ремонт машины, тыщ так на 60 рублей наклевывается, оплатите? laughing.gif


извините но это для меня очень дорого ....

Автор: yakub_EZ Oct 22 2010, 06:44

Предлагаю аналоговый вариант. Для затравки схема из Фолкенберри "Применение операционных усилителей и линейных ИС" Москва МИР 1985. Думаю можно передалать под однополярный вариант по питанию. Прошу извинитьза сканер, соединен с ним по сети, по которой он шлет только PDF'ками, которые я не могу редактировать

 

 g001.pdf ( 129.03 килобайт ) : 65
 

Автор: Herz Oct 22 2010, 07:04

Дорогой ARAM.S! Судя по вопросам, знаний в электронике и программировании у Вас совсем мало. Тут и рады бы помочь, но готового решения предложить не получится. Или наберитесь терпения и продвигайтесь по ступенькам, изучая предмет по книгам и интернету. Задавая более осмысленные вопросы на форуме. Полезно для самосовершенствования, но времени займёт немало. Или поищите у себя в округе специалиста, неужели в Ереване электронщиков нет? Иначе получится: пойди туда, не знаю куда, принеси то, не знаю что.

Автор: ARAM.S Oct 22 2010, 18:53

Цитата(Herz @ Oct 22 2010, 11:04) *
Дорогой ARAM.S! Судя по вопросам, знаний в электронике и программировании у Вас совсем мало. Тут и рады бы помочь, но готового решения предложить не получится. Или наберитесь терпения и продвигайтесь по ступенькам, изучая предмет по книгам и интернету. Задавая более осмысленные вопросы на форуме. Полезно для самосовершенствования, но времени займёт немало. Или поищите у себя в округе специалиста, неужели в Ереване электронщиков нет? Иначе получится: пойди туда, не знаю куда, принеси то, не знаю что.


насчет знаний вы правы я электроникой занимался 10 лет назад , сейчас я сетевой администратор Linux и диагност по
машинам, паять могу ,платы травит собирать , прошит МК тоже, по этому тут спросил может поможете
потом мне на русском очень трудно правильно излагать свой мысли , я пишу транслитом
кстати я на форуме nag.ru многим помогал готовыми решениями не думал что просит что то готовое не хорошо извините
друзья если что не то.

Автор: Herz Oct 22 2010, 19:43

Цитата(ARAM.S @ Oct 22 2010, 20:53) *
кстати я на форуме nag.ru многим помогал готовыми решениями не думал что просит что то готовое не хорошо извините
друзья если что не то.

Дело совсем не в том, что нехорошо. Если есть готовое, обычно поделиться не жалко. Ну, за исключением каких-то дорогостоящих коллективных проектов.
А просто то, что именно Вам надо, в готовом виде вряд ли найдёте. И так, чтобы подправить что-то по-лёгкому (прошивку там какую), не получится, скорее всего.
Легче и надёжнее сделать всё самому. Помогать вроде никто не отказывается. Зато опыт бесценный приобретается.
Хотя, если бы Вы описали всю свою задачу более подробно, может и выяснилось бы, что тривиальные решения уже существуют.

Автор: Goodefine Oct 22 2010, 20:04

Когда то писал похожую вещь. Под таблицу переделать несложно... Если составите сами зависимость выходного от входного. Посмотрите http://electronix.ru/redirect.php?http://radiokot.ru/forum/viewtopic.php?p=179332#p179332... Если требуется что-то подобное, могу отыскать исходник....

Автор: ARAM.S Oct 23 2010, 18:43

Цитата(Goodefine @ Oct 22 2010, 23:04) *
Когда то писал похожую вещь. Под таблицу переделать несложно... Если составите сами зависимость выходного от входного. Посмотрите http://electronix.ru/redirect.php?http://radiokot.ru/forum/viewtopic.php?p=179332#p179332... Если требуется что-то подобное, могу отыскать исходник....


по моему то, что надо а какая там разрядность сколько точек можно получить в диапазоне 0-5 в?
таблица у меня имеется , а в исходнике подскажите какие значение отвечают за входное и какие за выходное напряжение ? и можно будет получить любое линейность изменяя только код?

Автор: Goodefine Oct 23 2010, 19:12

Цитата(ARAM.S @ Oct 23 2010, 21:43) *
..а какая там разрядность сколько точек можно получить в диапазоне 0-5 в?

Хотите 256, а хотите и 1024 (С 10-и битным ШИМом)... Таблицу то Вам рисовать...
Цитата(ARAM.S @ Oct 23 2010, 21:43) *
... а в исходнике подскажите какие значение отвечают за входное и какие за выходное напряжение ? и можно будет получить любое линейность изменяя только код?

Конечно. Изменили, перекомпилировали, прошили...
Таблица будет в виде
Код
flash unsigned char[256] //для 8-ми бит
{
0, //0
1, //1
3, //2
...
231 //255
}

Первый столбец - выходное напряжение (в относительных единицах), второй - входное (указано ТОЛЬКО для наглядности - идет подряд)... Ее Вам придется составлять самому... И все..

Автор: ARAM.S Oct 24 2010, 06:20

Цитата(Goodefine @ Oct 23 2010, 22:12) *
Хотите 256, а хотите и 1024 (С 10-и битным ШИМом)... Таблицу то Вам рисовать...

Конечно. Изменили, перекомпилировали, прошили...
Таблица будет в виде
Код
flash unsigned char[256] //для 8-ми бит
{
0, //0
1, //1
3, //2
...
231 //255
}

Первый столбец - выходное напряжение (в относительных единицах), второй - входное (указано ТОЛЬКО для наглядности - идет подряд)... Ее Вам придется составлять самому... И все..


ок я все понял па моему разберусь , а исходник если очень пропашу дадите ?

Автор: ARAM.S Oct 25 2010, 17:42

Цитата(ARAM.S @ Oct 24 2010, 09:20) *
ок я все понял па моему разберусь , а исходник если очень пропашу дадите ?


я пытался конвертировать hex в asm но толку никакой не нашел там что то похожее что вы выше показали unsure.gif

 upss.rar ( 781 байт ) : 34
 

Автор: rezident Oct 25 2010, 17:53

Цитата(ARAM.S @ Oct 25 2010, 23:42) *
не хотите да наверное дать исходник ?
Уважаемый, ARAM.S. На форуме ваших должников (надеюсь) нет, т.е. никто вам ничего не должен. Те люди, которые могут и желают вам помочь советами, сделают для вас это безвозмездно. Но за вас работу бесплатно никто сделает не будет. И пока вы сами не возьметесь за ее выполнение, то работа с месте не сдвинется. Начните делать и у вас появятся конкретные, а не абстрактные вопросы. Пускай даже если они поначалу будет наивными.

Автор: ARAM.S Oct 25 2010, 18:07

Цитата(rezident @ Oct 25 2010, 20:53) *
Уважаемый, ARAM.S. На форуме ваших должников (надеюсь) нет, т.е. никто вам ничего не должен. Те люди, которые могут и желают вам помочь советами, сделают для вас это безвозмездно. Но за вас работу бесплатно никто сделает не будет. И пока вы сами не возьметесь за ее выполнение, то работа с месте не сдвинется. Начните делать и у вас появятся конкретные, а не абстрактные вопросы. Пускай даже если они поначалу будет наивными.


извините ради Бога, я не то имел введу , просто автор сказал что даст исходник ....я по этому и спросил .
просто одного не понимаю зачем надо било мне сбивать с пути я сам нашел похожий проект , а форумчане
говорили не то , соврал я и все заработало ! вот проект может кому пригодится
а Goodefine все равно огромное спасибо благодаря ему я многое понял

 pic.rar ( 58.04 килобайт ) : 50
 

Автор: Goodefine Oct 25 2010, 19:26

Цитата(ARAM.S @ Oct 25 2010, 21:07) *
..просто автор сказал что даст исходник ....я по этому и спросил .
просто одного не понимаю зачем надо било мне сбивать с пути...

Ну а что Вам этот исходник дал бы в чистом виде? С НЕтабличной реализацией... Я ждал, когда же Вы выложите, наконец, свою зависимость в указанном виде, дабы соединить ее с исходником. В таком виде это было бы полезно. Кроме того, Вы не указали, какую таблицу все таки надо, 256 или 1024, на каком камне остановится.. Не сказали скоростные параметры системы - насколько быстро нужно отслеживать изменение входного сигнала и с какой точностью... Чтобы вы делали с ТЕМ демо исходником?
CODE

/*****************************************************
CodeWizardAVR V2.03.4 Standard
Chip type : ATtiny25
Clock frequency : 1,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny25.h>
#include <delay.h>

#define ADC_VREF_TYPE 0xD0

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW>>2;
}

void main(void)
{
unsigned char v;
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTB=0x00;
DDRB=0x02;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Disconnected
// OC0B output: Non-Inverted PWM
TCCR0A=0x23;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x155;

// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: 2.56V, cap. on AREF
// ADC Bipolar Input Mode: Off
// ADC Reverse Input Polarity: Off
// ADC Auto Trigger Source: None
// Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On
DIDR0&=0x03;
DIDR0|=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
ADCSRB&=0x5F;

while (1)
{
v=read_adc(1);
if(v<0xDE) OCR0B=v-1;
else{
if(v>0xFE) OCR0B=v-25;
else
OCR0B=0xD6;
}
delay_ms(10);
}
}


Легче от такого мега-исходника? Сами придти к такому не могли, с пользой для дела?...

Автор: ARAM.S Oct 26 2010, 00:43

Цитата(Goodefine @ Oct 25 2010, 23:26) *
Ну а что Вам этот исходник дал бы в чистом виде? С НЕтабличной реализацией... Я ждал, когда же Вы выложите, наконец, свою зависимость в указанном виде, дабы соединить ее с исходником. В таком виде это было бы полезно. Кроме того, Вы не указали, какую таблицу все таки надо, 256 или 1024, на каком камне остановится.. Не сказали скоростные параметры системы - насколько быстро нужно отслеживать изменение входного сигнала и с какой точностью... Чтобы вы делали с ТЕМ демо исходником?
CODE

/*****************************************************
CodeWizardAVR V2.03.4 Standard
Chip type : ATtiny25
Clock frequency : 1,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny25.h>
#include <delay.h>

#define ADC_VREF_TYPE 0xD0

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW>>2;
}

void main(void)
{
unsigned char v;
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTB=0x00;
DDRB=0x02;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Disconnected
// OC0B output: Non-Inverted PWM
TCCR0A=0x23;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x155;

// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: 2.56V, cap. on AREF
// ADC Bipolar Input Mode: Off
// ADC Reverse Input Polarity: Off
// ADC Auto Trigger Source: None
// Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On
DIDR0&=0x03;
DIDR0|=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
ADCSRB&=0x5F;

while (1)
{
v=read_adc(1);
if(v<0xDE) OCR0B=v-1;
else{
if(v>0xFE) OCR0B=v-25;
else
OCR0B=0xD6;
}
delay_ms(10);
}
}


Легче от такого мега-исходника? Сами придти к такому не могли, с пользой для дела?...


Вы правы с НЕ табличной реализацией мне нечего бы не дал , нужен 256, скорость отслеживания максимум 10 герц
я просто думал что вы дадите исходник с табличной реализацией 5-6 строк как показали выше а дальше я сам бы продолжил , пока экспериментирую с pic- ом


Автор: Goodefine Oct 26 2010, 20:34

Цитата(ARAM.S @ Oct 26 2010, 03:43) *
...я просто думал что вы дадите исходник с табличной реализацией 5-6 строк как показали выше а дальше ....

А 256 значений Вы предлагаете мне самому придумать?..

Автор: ARAM.S Oct 27 2010, 16:11

Цитата(Goodefine @ Oct 27 2010, 00:34) *
А 256 значений Вы предлагаете мне самому придумать?..


нет конечно, sad.gif я же сказал 5-6 строк для примера приведите ,я сам продолжу
таблицы разные для разных датчиков, мне нужен всего лишь пример


Автор: Goodefine Oct 27 2010, 18:22

Цитата(ARAM.S @ Oct 27 2010, 19:11) *
... я же сказал 5-6 строк для примера приведите ,я сам продолжу..

Дык мне ж проверить надо! smile3046.gif Или потом еще три страницы выяснять будете почему у Вас не работает?... Контроллер хоть какой?

Автор: ARAM.S Oct 28 2010, 07:09

Цитата(Goodefine @ Oct 27 2010, 22:22) *
Дык мне ж проверить надо! smile3046.gif Или потом еще три страницы выяснять будете почему у Вас не работает?... Контроллер хоть какой?


ок, а таблицу сделать на этом примере ?
------------------------------------------------------
flash unsigned char[256] //для 8-ми бит
{
0, //0
1, //1
3, //2
...
231 //255
}
-------------------------------------------------------


а контроллер attiny2313

Автор: XVR Oct 28 2010, 07:26

Цитата(ARAM.S @ Oct 28 2010, 11:09) *
а контроллер attiny2313
У него нет встроенного АЦП, будете ставить внешний?


Автор: ARAM.S Oct 28 2010, 07:38

Цитата(XVR @ Oct 28 2010, 11:26) *
У него нет встроенного АЦП, будете ставить внешний?


а в attiny25 АЦП есть ?

Автор: XVR Oct 28 2010, 08:11

Цитата(ARAM.S @ Oct 28 2010, 11:38) *
а в attiny25 АЦП есть ?
Нет. Я вам http://electronix.ru/forum/index.php?showtopic=81829&view=findpost&p=827568 давал список МК с АЦП и ШИМом


Автор: ARAM.S Oct 28 2010, 08:24

Цитата(XVR @ Oct 28 2010, 12:11) *
Нет. Я вам http://electronix.ru/forum/index.php?showtopic=81829&view=findpost&p=827568 давал список МК с АЦП и ШИМом


я хочу делать по схеме Goodefine, он http://electronix.ru/redirect.php?http://radiokot.ru/forum/viewtopic.php?p=179332#p179332все описал, все работает

Автор: XVR Oct 28 2010, 13:32

Цитата(ARAM.S @ Oct 28 2010, 12:24) *
я хочу делать по схеме Goodefine, он http://electronix.ru/redirect.php?http://radiokot.ru/forum/viewtopic.php?p=179332#p179332все описал, все работает
Да, действительно АЦП есть. У Atmel'а на сайте наблюдается несоответствие между данными в даташите на tiny25 и сводной таблицей smile3046.gif

Автор: ILYAUL Oct 28 2010, 13:41

Цитата(XVR @ Oct 28 2010, 17:32) *
Да, действительно АЦП есть. У Atmel'а на сайте наблюдается несоответствие между данными в даташите на tiny25 и сводной таблицей smile3046.gif

А вы какой DS смотрите?

Автор: XVR Oct 28 2010, 14:43

Цитата(ILYAUL @ Oct 28 2010, 17:41) *
А вы какой DS смотрите?
Его и смотрю. А еще смотрю их http://electronix.ru/redirect.php?http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC и в строке на ATtiny25 в столбце '10-bit A/D Single-Ended Channels' вижу прочерк unsure.gif

Автор: Goodefine Oct 28 2010, 15:12

Цитата(ARAM.S @ Oct 28 2010, 10:09) *
а таблицу сделать на этом примере?..

На этом...

Автор: ILYAUL Oct 28 2010, 15:34

Цитата(XVR @ Oct 28 2010, 18:43) *
Его и смотрю. А еще смотрю их http://electronix.ru/redirect.php?http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC и в строке на ATtiny25 в столбце '10-bit A/D Single-Ended Channels' вижу прочерк unsure.gif

Ну видимо как и всегда - человеческий фактор biggrin.gif

Автор: aleksey_g Nov 23 2010, 14:03

Цитата(ARAM.S @ Oct 20 2010, 07:54) *
привет друзья прошу сильно не пинать , в ацп и цап не силен ,требуется преобразователь с 0...5v на 0...5v
как реализовать? надо так чтоб например при входном 1.1в а на выходе было 1.6в и.т.д
очень прошу помогите новичку rolleyes.gif

Е-мае!!!
Год назад друг-авторемонтер попросил сделать именно то, что просит топикстартер.
Причем ОЧЕНЬ СРОЧНО.
В то время у меня было несколько свободного времени. Взялся и за около месяца слепил.
Могу отдать в хорошие руки.
Только не пинайте, поскольку все делалось слишком срочно.
Сопровождать проект не буду. Нету свободного времени.
Что это?
Примочка на контроллере со входом(0..5) и выходом(0..5).
На компе запускается программа, которая управляет примочкой.
Функция соответствия выхода входу строится мышкой с возможностью сохранения в файл,
загрузки из файла, графического редактирования, выгрузки в примочку, реалтайм-наблюдения
за входом и выходом...
Примочка подключается к компу через К-line адаптер.
Выгруженная в примочку функция преобразования сохраняется в ЕЕПРОМ. Т.е. примочка выполняет свою
функцию даже без подключения к компу.
Поскольку АТМЕГА8 не очень дешева, то слеплена программулинка, которая по сохраненной функции
преобразования генерирует файл прошивки под более дешевый контроллер АТТINY13.(уже без возможности
внешнего ею управления).
Короче, вот:  CONVERTER.rar ( 3.91 мегабайт ) : 2624

Автор: ARAM.S Nov 26 2010, 16:35

Цитата(aleksey_g @ Nov 23 2010, 18:03) *
Е-мае!!!
Год назад друг-авторемонтер попросил сделать именно то, что просит топикстартер.
Причем ОЧЕНЬ СРОЧНО.
В то время у меня было несколько свободного времени. Взялся и за около месяца слепил.
Могу отдать в хорошие руки.
Только не пинайте, поскольку все делалось слишком срочно.
Сопровождать проект не буду. Нету свободного времени.
Что это?
Примочка на контроллере со входом(0..5) и выходом(0..5).
На компе запускается программа, которая управляет примочкой.
Функция соответствия выхода входу строится мышкой с возможностью сохранения в файл,
загрузки из файла, графического редактирования, выгрузки в примочку, реалтайм-наблюдения
за входом и выходом...
Примочка подключается к компу через К-line адаптер.
Выгруженная в примочку функция преобразования сохраняется в ЕЕПРОМ. Т.е. примочка выполняет свою
функцию даже без подключения к компу.
Поскольку АТМЕГА8 не очень дешева, то слеплена программулинка, которая по сохраненной функции
преобразования генерирует файл прошивки под более дешевый контроллер АТТINY13.(уже без возможности
внешнего ею управления).
Короче, вот:  CONVERTER.rar ( 3.91 мегабайт ) : 2624


Спасибо дорогой aleksey_g то что надо, уже собираю о результатах тут напишу , еще раз СПАСИБО

Автор: aleksey_g Nov 26 2010, 18:31

Пожалуйста!
Буду очень рад, если мой труд не пропал даром.

Подсказка:
Если не особо нужна оперативная калибровка и Вы ТОЧНО знаете, какое напряжение нужно сопоставить какому, то можете собирать тот, который на ТИНИ13.
Там уже есть исходник под ИАР. Нужно только ручками поменять таблицу замены.
В таблице измеренное напряжение (в отсчетах АЦП) соответствует порядковому номеру числа таблицы.
А то, что будет на выходе соответствует величине (в отсчетах АЦП) соответствующего числа в таблице.

Или же сформировать табличку моим графическим редактором, сохранить ее в файл, скормить ее с_code.exe и получить правильный исходник с нужной таблицей преобразования.
P. S.
В редакторе для графического изменения функции даблкликом поставьте левую(первым даблкликом) и правую(вторым даблкликом) границы редактирования.
Метод деформации выберите пиктограмками с правой стороны. Только сейчас не помню, как изменить крайние левые и правые точки. Нужно вспоминать. По крайней мере табличным способом(пиктограмка с табличкой!) возможно сделать все, что хотите.

Автор: ARAM.S Nov 26 2010, 19:22

Цитата(aleksey_g @ Nov 26 2010, 22:31) *
Пожалуйста!
Буду очень рад, если мой труд не пропал даром.

Подсказка:
Если не особо нужна оперативная калибровка и Вы ТОЧНО знаете, какое напряжение нужно сопоставить какому, то можете собирать тот, который на ТИНИ13.
Там уже есть исходник под ИАР. Нужно только ручками поменять таблицу замены.
В таблице измеренное напряжение (в отсчетах АЦП) соответствует порядковому номеру числа таблицы.
А то, что будет на выходе соответствует величине (в отсчетах АЦП) соответствующего числа в таблице.


ок спасибо еще раз ! утром будет готов протестирую

Автор: aleksey_g Nov 26 2010, 19:31

Цитата(ARAM.S @ Nov 26 2010, 21:22) *
а с помощью графической утилити нельзя создать исходник для тини 13 так боле удобно будет


Опередили. Пока Вы задавали вопрос, я уже писал на него ответ, редактируя свое сообщение на предыдущей странице.
И еще один PS:
В графике использован Дельфийский Tchart. Можно увеличивать масштаб отображения выделяя нужный фрагмент зажав левую кнопку мыши, выделяя его (таща мышу) вправо вниз. Сбросить увеличение можно таким же образом, но выделяя снизу влево. Передвигать область увеличенного отображения нужно зажав правую кнопку мыша.

Автор: ARAM.S Nov 26 2010, 19:54

вы настоящий гуру

Автор: aleksey_g Dec 17 2010, 18:53

Дико извиняюсь!
В приложенной мной схеме закралась ошибка.
Входное напряжение нужно подавать не на вход AIN0 а на ADC0.
Т.е. вместо 12 ноги должна быть 23.
Благодаря ARAM.S, обнаружилась эта моя оплошность.

Автор: андрей пингвин May 10 2013, 07:59

Здравствуйте, понимаю что тема старая , но может кто помнит , какие настройки в IAR под мини конвертер на atini 13 , а то мучаюсь уже пару недель -результатов ноль. При компиляции исходника выдает 15 ошибок, как бороться не знаю.( я начинающий, если можно на пальцах)

Автор: artkam May 15 2013, 17:35

Попробуйте порт под CodeVision 1.25.9. Программатор, надеюсь, в наличии имеется???

 conv.rar ( 26.37 килобайт ) : 50
 

Автор: андрей пингвин May 16 2013, 10:10

Добрый день. Вот спасибо! CodeVision у меня установлен, с программатором проблем нет, проблема с головой. Таблицу перепишу под свой датчик и проверю. Огромное спасибо , очень выручили!

Автор: андрей пингвин May 19 2013, 07:15

Здравствуйте. Проверил в железе, все работает, еще раз спасибо.

Автор: lexxius77 Sep 24 2018, 16:26

Цитата(андрей пингвин @ May 19 2013, 08:15) *
Здравствуйте. Проверил в железе, все работает, еще раз спасибо.

Здравствуйте!!!!! А можете печаткой поделиться,??? Старый bmw e34, хочется смесь регулировать без сто, себе, никакой коммерции...

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)