Написал свою Onewire для Codevision

Обсуждаем контроллеры компании Atmel.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

Проект без исходников это шляпа.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Написал свою Onewire для Codevision

Сообщение Starichok51 »

только очень много людей предпочли сделать мою шляпу.
а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 496
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

Re: Написал свою Onewire для Codevision

Сообщение ДядяВован »

[uquote="AVK",url="/forum/viewtopic.php?p=4495669#p4495669"]Проект без исходников это шляпа.[/uquote]
Проект без исходников -это проект!
Дана схема, прошивка. Бери, делай.
Не понимаю, зачем исходник?
Хочешь по другому сделать? Пиши исходник, в чём проблема? Что за маниакальное желание получить чужой текст.
Микроволновку тоже не покупаешь, если исходник производитель не вложил в коробку?
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Написал свою Onewire для Codevision

Сообщение Starichok51 »

ну, иногда, если сам не соображаешь, чужой текст может помочь понять, как нужно делать.
но не всегда и не всем ...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Эиком - электронные компоненты и радиодетали
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4495670#p4495670"]а смысл тебе показывать -ты все равно там в тексте на ассемблере ничего не поймешь.[/uquote]
Ну воображаемый ассемблер твой точно не пойму. Ибо его нет. Я с универа подзабыл конечно асм. Но что может быть сложного в AVR асме?
Я смотрю импотенция у тебя видимо пришла, но мудрость нет.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Написал свою Onewire для Codevision

Сообщение Starichok51 »

тебе с твоим хамством приход мудрости не грозит вообще.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

Так ты первый начал.
Я выложил проект. Ты начал его критиковать даже не посмотрев. Обвинил меня в высокомерии. Усомнится в моих умственных способностях. Я грешным делом подумал, что ты и правда велик. А потом посмотрел что ты там наваял ))))) На воображаемом ассемблере. Считая такты в прерывании ))))))
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Написал свою Onewire для Codevision

Сообщение Martian »

Зато я посмотрел. Зачем для этого говна требовалось идти в вуз, непонятно. Выкладывать такой "проект" на обозрение всем подобно худшему варианту эксгибиционизма. Любая твоя "критика" не имеет значения, ибо ты не программист.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

Я то не программист базара нет. Как и ты очевидно.
Приведи пример хорошей библиотеки по твоему, я чот не нашел. Именно под AVR
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

Подправил немного тайминги (не работало с китайскими клонами), исправил пару косяков, вынес весь код в отдельный файл. Несколько тысяч измерений - ни одного сбоя. Работает корректно. Проверил, без проблем работает на 1МГц тактовой, родная библиотека начинал глючить на 4МГц
Вложения
DS18B20.rar
(53.07 КБ) 59 скачиваний
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Написал свою Onewire для Codevision

Сообщение 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 - предделитель

и т.д.
:roll:

из описания регистров видно, что флаг 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);      
}
вот так уже лучше))
:tea:
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Написал свою Onewire для Codevision

Сообщение Starichok51 »

а какое отношение имеет ADC к теме про 1-wire?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
roman.com
Друг Кота
Сообщения: 9149
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Написал свою Onewire для Codevision

Сообщение roman.com »

х.з. ))
в исходниках ТС есть ADC.
видимо ТС с помощью ADC измеряет сигнал 1-wire...
я до конца не разобрался... там много букав))
:))
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Написал свою Onewire для Codevision

Сообщение AVK »

Все одноваре вынесено в отдельный файл. Там пример готового проекта термометра двухканального. Там подключена клавиатура резистивная, она опрашивается через АЦП. Функция опроса АЦП писана не мной, она идет из генератора кода CV. Мое там только вычисления скользящего среднего по 4м отсчетам.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Написал свою Onewire для Codevision

Сообщение 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);      
}
вот так уже лучше))
:tea:[/uquote]
Да просто шикарно. busy waiting - наше всё :facepalm:
Ответить

Вернуться в «AVR»