Написал свою Onewire для Codevision
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
- Реклама
только очень много людей предпочли сделать мою шляпу.
а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.
а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
[uquote="AVK",url="/forum/viewtopic.php?p=4495669#p4495669"]Проект без исходников это шляпа.[/uquote]
Проект без исходников -это проект!
Дана схема, прошивка. Бери, делай.
Не понимаю, зачем исходник?
Хочешь по другому сделать? Пиши исходник, в чём проблема? Что за маниакальное желание получить чужой текст.
Микроволновку тоже не покупаешь, если исходник производитель не вложил в коробку?
Проект без исходников -это проект!
Дана схема, прошивка. Бери, делай.
Не понимаю, зачем исходник?
Хочешь по другому сделать? Пиши исходник, в чём проблема? Что за маниакальное желание получить чужой текст.
Микроволновку тоже не покупаешь, если исходник производитель не вложил в коробку?
ну, иногда, если сам не соображаешь, чужой текст может помочь понять, как нужно делать.
но не всегда и не всем ...
но не всегда и не всем ...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
[uquote="Starichok51",url="/forum/viewtopic.php?p=4495670#p4495670"]а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.[/uquote]
Ну воображаемый ассемблер твой точно не пойму. Ибо его нет. Я с универа подзабыл конечно асм. Но что может быть сложного в AVR асме?
Я смотрю импотенция у тебя видимо пришла, но мудрость нет.
Ну воображаемый ассемблер твой точно не пойму. Ибо его нет. Я с универа подзабыл конечно асм. Но что может быть сложного в AVR асме?
Я смотрю импотенция у тебя видимо пришла, но мудрость нет.
- Реклама
тебе с твоим хамством приход мудрости не грозит вообще.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
Так ты первый начал.
Я выложил проект. Ты начал его критиковать даже не посмотрев. Обвинил меня в высокомерии. Усомнится в моих умственных способностях. Я грешным делом подумал, что ты и правда велик. А потом посмотрел что ты там наваял ))))) На воображаемом ассемблере. Считая такты в прерывании ))))))
Я выложил проект. Ты начал его критиковать даже не посмотрев. Обвинил меня в высокомерии. Усомнится в моих умственных способностях. Я грешным делом подумал, что ты и правда велик. А потом посмотрел что ты там наваял ))))) На воображаемом ассемблере. Считая такты в прерывании ))))))
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Зато я посмотрел. Зачем для этого говна требовалось идти в вуз, непонятно. Выкладывать такой "проект" на обозрение всем подобно худшему варианту эксгибиционизма. Любая твоя "критика" не имеет значения, ибо ты не программист.
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
Я то не программист базара нет. Как и ты очевидно.
Приведи пример хорошей библиотеки по твоему, я чот не нашел. Именно под AVR
Приведи пример хорошей библиотеки по твоему, я чот не нашел. Именно под AVR
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
Подправил немного тайминги (не работало с китайскими клонами), исправил пару косяков, вынес весь код в отдельный файл. Несколько тысяч измерений - ни одного сбоя. Работает корректно. Проверил, без проблем работает на 1МГц тактовой, родная библиотека начинал глючить на 4МГц
- Вложения
-
- DS18B20.rar
- (53.07 КБ) 60 скачиваний
Код: Выделить всё
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);
}
а какое отношение имеет ADC к теме про 1-wire?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
х.з. ))
в исходниках ТС есть ADC.
видимо ТС с помощью ADC измеряет сигнал 1-wire...
я до конца не разобрался... там много букав))

в исходниках ТС есть ADC.
видимо ТС с помощью ADC измеряет сигнал 1-wire...
я до конца не разобрался... там много букав))
- Сообщения: 349
- Зарегистрирован: Сб окт 20, 2007 14:12:03
Все одноваре вынесено в отдельный файл. Там пример готового проекта термометра двухканального. Там подключена клавиатура резистивная, она опрашивается через АЦП. Функция опроса АЦП писана не мной, она идет из генератора кода CV. Мое там только вычисления скользящего среднего по 4м отсчетам.
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
[uquote="roman.com",url="/forum/viewtopic.php?p=4518557#p4518557"]
вот так уже лучше))
[/uquote]
Да просто шикарно. busy waiting - наше всё
Код: Выделить всё
void adc(unsigned char adc_input)
{
ADMUX = 0b01000000 | adc_input; // опорное AVCC // канал ADC0...ADC7
delay_us(10);
ADCSRA|=0b01000000;
while (ADCSRA & 0b01000000);
}
Да просто шикарно. busy waiting - наше всё


