Страница 6 из 6
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 14:54:39
AVK
Проект без исходников это шляпа.
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 14:58:51
Starichok51
только очень много людей предпочли сделать мою шляпу.
а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 17:29:56
ДядяВован
[uquote="AVK",url="/forum/viewtopic.php?p=4495669#p4495669"]Проект без исходников это шляпа.[/uquote]
Проект без исходников -это проект!
Дана схема, прошивка. Бери, делай.
Не понимаю, зачем исходник?
Хочешь по другому сделать? Пиши исходник, в чём проблема? Что за маниакальное желание получить чужой текст.
Микроволновку тоже не покупаешь, если исходник производитель не вложил в коробку?
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 17:56:26
Starichok51
ну, иногда, если сам не соображаешь, чужой текст может помочь понять, как нужно делать.
но не всегда и не всем ...
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 19:17:38
AVK
[uquote="Starichok51",url="/forum/viewtopic.php?p=4495670#p4495670"]а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.[/uquote]
Ну воображаемый ассемблер твой точно не пойму. Ибо его нет. Я с универа подзабыл конечно асм. Но что может быть сложного в AVR асме?
Я смотрю импотенция у тебя видимо пришла, но мудрость нет.
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 20:15:22
Starichok51
тебе с твоим хамством приход мудрости не грозит вообще.
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 21:23:52
AVK
Так ты первый начал.
Я выложил проект. Ты начал его критиковать даже не посмотрев. Обвинил меня в высокомерии. Усомнится в моих умственных способностях. Я грешным делом подумал, что ты и правда велик. А потом посмотрел что ты там наваял ))))) На воображаемом ассемблере. Считая такты в прерывании ))))))
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 21:46:42
Martian
Зато я посмотрел. Зачем для этого говна требовалось идти в вуз, непонятно. Выкладывать такой "проект" на обозрение всем подобно худшему варианту эксгибиционизма. Любая твоя "критика" не имеет значения, ибо ты не программист.
Re: Написал свою Onewire для Codevision
Добавлено: Пн окт 30, 2023 23:51:16
AVK
Я то не программист базара нет. Как и ты очевидно.
Приведи пример хорошей библиотеки по твоему, я чот не нашел. Именно под AVR
Re: Написал свою Onewire для Codevision
Добавлено: Вс дек 17, 2023 04:07:14
AVK
Подправил немного тайминги (не работало с китайскими клонами), исправил пару косяков, вынес весь код в отдельный файл. Несколько тысяч измерений - ни одного сбоя. Работает корректно. Проверил, без проблем работает на 1МГц тактовой, родная библиотека начинал глючить на 4МГц
Re: Написал свою Onewire для Codevision
Добавлено: Вс дек 17, 2023 13:47:27
roman.com
Код: Выделить всё
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
где:
//ADMUX
//1... .... REFS1 - опорное напряжение - 0
//.1.. .... REFS0 - опорное напряжение - 1 - AVCC
//..1. .... ADLAR - Выравнивание результата
//...1 .... -
//.... 1... MUX3 - номер канала
//.... .1.. MUX2 - номер канала
//.... ..1. MUX1 - номер канала
//.... ...1 MUX0 - номер канала - ADC0...ADC7 (0000=ADC0)
//REFS1=0 REFS0=0 - ИОН=AREF
//REFS1=0 REFS0=1 - ИОН=AVCC
//REFS1=1 REFS0=0 - не используется (зарезервировано)
//REFS1=1 REFS0=1 - ИОН=2.56V (встроенный ИОН 2.56V)
//ADCSRA
//1... .... ADEN - 1- вкл ADC. (0-ADC не потребляет мощности)
//.1.. .... ADSC - 1- Старт. При завершении преобразования сбрасывается аппаратно.
//..1. .... ADFR - 1- режим Непрерывного Преобразования.
//...1 .... ADIF - 1- флаг завершения преобразования
// -сброс программно.
// -для прерывания очищается аппаратно.
//.... 1... ADIE - 1- Разрешение прерывания
//.... .1.. ADPS2 - предделитель
//.... ..1. ADPS1 - предделитель
//.... ...1 ADPS0 - предделитель
и т.д.
из описания регистров видно, что флаг ADIF (флаг завершения преобразования) опрашивать не обязательно...
вместо этого можно опрашивать ADSC (Старт бит). При завершении преобразования он сбрасывается аппаратно.
и возвращать значение ADCW (return ADCW) в программе тоже не обязательно...
значит, можно уменьшить код на пару строчек... ))
Код: Выделить всё
////////////////////////////////// АЦП: -0,000.070c
void adc(unsigned char adc_input)
{
ADMUX = 0b01000000 | adc_input; // опорное AVCC // канал ADC0...ADC7
delay_us(10);
ADCSRA|=0b01000000;
while (ADCSRA & 0b01000000);
}
вот так уже лучше))

Re: Написал свою Onewire для Codevision
Добавлено: Вс дек 17, 2023 16:28:07
Starichok51
а какое отношение имеет ADC к теме про 1-wire?
Re: Написал свою Onewire для Codevision
Добавлено: Вс дек 17, 2023 16:41:36
roman.com
х.з. ))
в исходниках ТС есть ADC.
видимо ТС с помощью ADC измеряет сигнал 1-wire...
я до конца не разобрался... там много букав))

Re: Написал свою Onewire для Codevision
Добавлено: Вс дек 17, 2023 22:27:26
AVK
Все одноваре вынесено в отдельный файл. Там пример готового проекта термометра двухканального. Там подключена клавиатура резистивная, она опрашивается через АЦП. Функция опроса АЦП писана не мной, она идет из генератора кода CV. Мое там только вычисления скользящего среднего по 4м отсчетам.
Re: Написал свою Onewire для Codevision
Добавлено: Пн дек 18, 2023 04:37:51
Martian
[uquote="roman.com",url="/forum/viewtopic.php?p=4518557#p4518557"]
Код: Выделить всё
void adc(unsigned char adc_input)
{
ADMUX = 0b01000000 | adc_input; // опорное AVCC // канал ADC0...ADC7
delay_us(10);
ADCSRA|=0b01000000;
while (ADCSRA & 0b01000000);
}
вот так уже лучше))

[/uquote]
Да просто шикарно. busy waiting - наше всё
