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

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

Сообщение AVK »

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

Сообщение Starichok51 »

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

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

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

Сообщение Starichok51 »

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

Сообщение AVK »

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

Сообщение Starichok51 »

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

Сообщение AVK »

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

Сообщение Martian »

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

Сообщение AVK »

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

Сообщение AVK »

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

Сообщение 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:
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

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

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

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

Сообщение AVK »

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

Сообщение 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»