Подскажите схему бортового компьютера на дисплее Nokia 3310

Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3695
Зарегистрирован: Пн авг 29, 2011 10:35:30
Откуда: Україна Дикий Захід - Чортків - Джурин

Сообщение gfgeuf »

просмотрите по ссылке устройства для автомобилей может поможет чем-то правда они все на PIC-ах и прошивки некоторые платные ... но чем чёрт не шутит :))) автоустройства
... :oops: и простите за невольную рекламу :oops:
пути ТОКА неисповедимы.
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

вся беда в том, что нету исходников там. Подключение обвесов - дело то одно, а вот правильно снять показания - другое(((
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

mas123 писал(а): Кароче, см. выше про телепатов и подвал с картошкой :))
Так, попробуй мой сорец. По крайней мере у меня работало :)
вот только проект у тебя под студио, а у меня под кодвижн(( перенести самостоятельно, увы, не смогу
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):вот только проект у тебя под студио, а у меня под кодвижн(( перенести самостоятельно, увы, не смогу
эмммм... кто-то на предыдущей странице заявлял:
В программной части разберусь как нибудь (ибо сам программист, си-подобные языки они и в африке си-подобные)
А тут и переносить-то ничего не надо, только подправить чуть-чуть обращение в периферийным портам. :shock:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

ахах) виноват)) лень-матушка)) в кодвижине синтаксис больше схож с явой (си-подобные знаю по с++ и по яве :)) ) а так я одинэсник)) хорошо, попробую. нашел тут таблицу сопротивлений-напряжения-температуры на вазовский датчик, попробую еще этот вариант замутить
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Реклама
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):ахах) виноват)) лень-матушка)) в кодвижине синтаксис больше схож с явой (си-подобные знаю по с++ и по яве :)) ) а так я одинэсник)) хорошо, попробую.
В приведенных выше примерах я вижу самый обычный С, ничем не отличающийся от приведенного мною.
Ромыч писал(а):нашел тут таблицу сопротивлений-напряжения-температуры на вазовский датчик, попробую еще этот вариант замутить
А не проще ли за полчаса снять самому данные? тестер на датчик и меряй напряжение на нем. И сравнивай с температурой на стрелке. А то и прицепи временно второй тестер с термометром и построй таблицу соответствия напряжения и температуры.
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

проще то проще... вот только хотел бы сопротивление точнее измерить, не по глючной стрелки. Снимать датчик не хочу - тосол сливай-заливай. На выходных поищу у соседей, может у них валяется где))
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):проще то проще... вот только хотел бы сопротивление точнее измерить, не по глючной стрелки. Снимать датчик не хочу - тосол сливай-заливай. На выходных поищу у соседей, может у них валяется где))
Зачем снимать, зачем сливать?
Тестер прямо на датчик, или прямо на стрелку, или к проводу подцепись. Короче - прямо в машине мерить.
По стрелке получаешь примерное значение - для первого опыта сойдет.

"Реальную" температуру тосола измерять... ммммм...
Термодатчик опустить в расширительный бачек и получим температуру. Прицепить термодатчик к радиатору, прицепить термодатчик там же, где стоит родной датчик.

Ежели найдешь куда нормально закрепить ту же ds1820, то никакие обмеры штатного датчика и не нужны, и так получишь точную температуру.
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

блин(( помогите написать процедуру обработки получения инфы с дс18б20, чтоб вывод был в трехзначном варианте. Уже все мозги сломал. ну не читает у меня ничего, либо выводит неправильно... желательно для кодвижина

может датчик подключаю не правильно? вроде как программа не находит датчик

брал код отсюда http://my-avr.at.ua/publ/1-1-0-28
Вложения
11.png
(19.05 КБ) 418 скачиваний
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):блин(( помогите написать процедуру обработки получения инфы с дс18б20, чтоб вывод был в трехзначном варианте. Уже все мозги сломал. ну не читает у меня ничего, либо выводит неправильно... желательно для кодвижина

может датчик подключаю не правильно? вроде как программа не находит датчик
Вижу только одни "вроде", "либо"....
так не читает или выводит неправильно ?! Уж это-то ты должен точно знать!!! Это определяется проще-простого!

Документацию на свою эту функцию ds18b20_temperature() читал? что надо дать на входе функции и что получим на выходе? Как отображаются ошибки, какие бывают ошибки?
желательно для кодвижина
Ага-ага, а ещё лучше сделайте всё за меня :))
Я тебе привел отлаженный и рабочий привел работы с этим датчиком, и описал какие функции когда вызывать. Перенести код из одной IDE в другую - как два байта передать.
Не хочешь заниматься переносом кода... Яндекс по запросу "ds18b20_temperature" выдал кучу-кучу ссылок и на проекте и на вопросы... и даже на ответы "почему не работает".
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

нашел косяк.
по моей схеме надо было писать

Код: Выделить всё

#asm
  .equ __w1_port=0x15 ;PORTC                                    
  .equ __w1_bit=3
#endasm
по портам. но теперь другой глюк(( температура не показывается правильно. если выставляешь 10, то показывается 1, после 18 до 28 - 2 и т.д.

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


вот еще. если результат разделить на 0.0625, тогда выводится двойная температура... в чем косяк так и не пойму
Вложения
Копия (2) бк нокиа.rar
(68.74 КБ) 245 скачиваний
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2253
Зарегистрирован: Пн ноя 01, 2010 12:19:31
Откуда: Серпухов

Сообщение olegators68 »

Ромыч, вот авторский форум http://forum.cxem.net/index.php?showtopic=46012&st=2500 Юрец на которые приборы вам ссылки давали, там множество вариантов, начиналось все с 16*2 и ЛЕД, сейчас и 3310, 1110 с автором связаться можно, да и исходники он выкладывает без проблем.
Дают описание приборов, хоть бы на автора ссылались :( .
Вот блин, опять в галерее картину малевича вверх ногами повесили.
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

Простите) действительно автора и первоисточник не указал) ну а все таки? Почему приходится не считывать, а высчитывать температуру?
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2253
Зарегистрирован: Пн ноя 01, 2010 12:19:31
Откуда: Серпухов

Сообщение olegators68 »

Я имел не вас ввиду, а те ресурсы которые на первоисточник ссылку не дают, а так "информация взята с сайта ttp: //datagor.ru" :) .
Хотел его собирать, но потом такой сделал http://monitor.net.ru/forum/viewtopic.p ... c&start=96 , мне нужно было от него 2-е температуры и вольтметр pavel-pervomaysk переделывал прошивку, схема, переделка Термометр + вольтметр от сети с предыдущей страницы.
Вот блин, опять в галерее картину малевича вверх ногами повесили.
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):Почему приходится не считывать, а высчитывать температуру?
В каком смысле? Сколько юзаю разные цифровые датчики (DS1820, SHT10, BMP085) всюду достаточно прочитать документацию, подать на вход правильную диаграмму и прочитать результат.
Что там у ds'ки высчитывать? Когда температура выдается в градусах, плюс 4 бита данных "после запятой"?
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

короче сделал чтоб работало)) изврат по качеству можно сравнить с немецкими фильмами, но работает:
Спойлер

Код: Выделить всё

void temp_lcd(void){

  temp=(ds18b20_temperature(0)/0.0625)/16;                                    // читаем температуру  
  if (temp<0){                                                           // если датчик выдаёт больше 1000
  temp=5536+temp;                                                        // отнимаем от данных 4096
  temp=-temp;                                                                     // и ставим знак "минус"
 }
      if (temp<0){          
        result_temp=temp;                
          decbin_ds(result_temp);                
          LcdDrawFont2(14,25); 
          LcdDrawFont2(10,36);         
           LcdDrawFont2(buffer[2],49);
           LcdDrawFont2(buffer[3],62); 
           
       } else{
     result_temp=temp;        
          decbin_ds(result_temp); 
          LcdDrawFont2(10,25);
           LcdDrawFont2(buffer[1],36);
           LcdDrawFont2(buffer[2],49);
           LcdDrawFont2(buffer[3],62); 
           LcdDrawFont2(15,75);
           
           };                                                
  delay_ms(50);                                                          
}
  
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):короче сделал чтоб работало)) изврат по качеству можно сравнить с немецкими фильмами, но работает:
Спасибо, ты сделал мой сегодняшний день! :)))
Всей конторой пытались разгадать твой код, но это не удалось.

Код: Выделить всё

  temp=(ds18b20_temperature(0)/0.0625)/16;                                    // читаем температуру  
Уже какой раз спрашиваю тебя об этой функции ds18b20_temperature() - что у неё на входе, что на выходе... А то твоя шутка без этих данных многое теряет.
Но вот пошто ты животинку... т.е. контроллер мучаешь? Что ты хотел сказать этим - (X / 0.0625 ) / 16 ? :shock:
Мало того, что используешь ненужные вычисления (тратим такты и память), так ещё и float привинтил к этому. Это на ПЦ памяти много-много и проц тикает быстро-быстро.

Код: Выделить всё

 if (temp<0){                                                           // если датчик выдаёт больше 1000
  temp=5536+temp;                                                        // отнимаем от данных 4096
  temp=-temp;                                                                     // и ставим знак "минус"
 }
Сдаюсь, не смог разгадать этого ребуса. А комментарии ещё более запутали. Даже цифры в коде и комментах не совпадают.

Код: Выделить всё

  if (temp<0){   
Ты надеешься, что после изменения знака в "temp=-temp;" значение по прежнему будет отрицательным? 8)

Код: Выделить всё

          LcdDrawFont2(14,25); 
          LcdDrawFont2(10,36);         
           LcdDrawFont2(buffer[2],49);
           LcdDrawFont2(buffer[3],62); 
Не знаю что означают цифры 14, 25, 10, 36 и другие (ага-ага, константы или комментарии рулят).
ДУмаю тут тоже есть своя шутка юмора, мне не доступная :)))
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

Ну не знаю я что на входе! эта стандартная библа из кодвижина. /0.0625 - это я встретил где то на форумах... а /16 - только так начала выводиться нужная циферка. Арифметику датчика/библиотек я так и не понял.

Код: Выделить всё

 if (temp<0){                                                           // если датчик выдаёт больше 1000
  temp=5536+temp;                                                        // отнимаем от данных 4096
  temp=-temp;                                                                     // и ставим знак "минус"
 }
на комменты тоже не стоит обращать внимания)) вообще убрать следовало (или переписать как подобает). На строку temp=5536+temp; тоже вышел опытным путем, когда температура отрицательная. А temp=-temp; согласен, бред. От говнокода еще не чистил, тоже кусок куска кода из интернетов))

Код: Выделить всё

LcdDrawFont2(10,36);         
           LcdDrawFont2(buffer[2],49);
           LcdDrawFont2(buffer[3],62);
это функции вывода на дисплей. На температуру не влияет)
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

Ромыч писал(а):Ну не знаю я что на входе! эта стандартная библа из кодвижина.
:kill: А документацию прочитать религия не позволяет? F1 нажать в IDE и поискать про эту функцию.
Не, "...я худею, дорогая редакция..."(с) пользоваться функцией, ничего о ней не зная...
Ромыч писал(а):/0.0625 - это я встретил где то на форумах... а /16 - только так начала выводиться нужная циферка. Арифметику датчика/библиотек я так и не понял.
*ищет смайлик АПСТЕНУ*
Стесняюсь спросить, а калькулятором пользоваться умеешь? (X / 0.0625 ) / 16 == (барабанная дробь) == X! Неудевительно что после /16 стало работать.
И 0.0625 вполне понятная цифра - достаточно посмотреть даташит на DS1820. (Хотя юзать float математику в данном случае - маразм)
Ромыч писал(а):На строку temp=5536+temp; тоже вышел опытным путем, когда температура отрицательная. А temp=-temp; согласен, бред. От говнокода еще не чистил, тоже кусок куска кода из интернетов))
Я тебя разочарую, но именно "temp += 5536" и есть бяко-код, а вот "переворот" знака сделан абсолютно верно. Тока надо всего лишь выставить для себя флажок, что число-то отрицательное (для последующего вывода).
Ромыч писал(а):

Код: Выделить всё

LcdDrawFont2(10,36);         
           LcdDrawFont2(buffer[2],49);
           LcdDrawFont2(buffer[3],62);
это функции вывода на дисплей. На температуру не влияет)
Оно влияет на сам код.
Вот скажи, не глядя в сырцы - почему выводишь из buffer[2] и buffer[3], а что в buffer[1] и buffer[0]?
А почему их не выводишь? А что делает функция decbin_ds?

ЗЫ: ну я не понима, как можно юзать функции, не разобравшись что на входе и что на выходе?
Преобразовывать отрицательное число в положительное ПОДБОРОМ смещения. :shock:
Прорезались зубы
Аватара пользователя
Сообщения: 210
Зарегистрирован: Ср янв 06, 2010 22:02:25
Откуда: Уфа сити

Сообщение Ромыч »

Простите извращенца) завтра поправлю код. Я с кодвижином работаю без году неделю, как и с мк)) желание "шоб работало" оказалось впереди здравого смысла) на свежую голову пересмотрю код
Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Контактная информация:
Ответить

Вернуться в «АвтоМотоВело»