...
Злословец есть самый лютый из диких зверей,
а льстец - самый опасный из ручных животных. (ДИОГЕН)
вот только проект у тебя под студио, а у меня под кодвижн(( перенести самостоятельно, увы, не смогуmas123 писал(а): Кароче, см. выше про телепатов и подвал с картошкой
Так, попробуй мой сорец. По крайней мере у меня работало![]()
эмммм... кто-то на предыдущей странице заявлял:Ромыч писал(а):вот только проект у тебя под студио, а у меня под кодвижн(( перенести самостоятельно, увы, не смогу
А тут и переносить-то ничего не надо, только подправить чуть-чуть обращение в периферийным портам.В программной части разберусь как нибудь (ибо сам программист, си-подобные языки они и в африке си-подобные)
В приведенных выше примерах я вижу самый обычный С, ничем не отличающийся от приведенного мною.Ромыч писал(а):ахах) виноват)) лень-матушка)) в кодвижине синтаксис больше схож с явой (си-подобные знаю по с++ и по яве) а так я одинэсник)) хорошо, попробую.
А не проще ли за полчаса снять самому данные? тестер на датчик и меряй напряжение на нем. И сравнивай с температурой на стрелке. А то и прицепи временно второй тестер с термометром и построй таблицу соответствия напряжения и температуры.Ромыч писал(а):нашел тут таблицу сопротивлений-напряжения-температуры на вазовский датчик, попробую еще этот вариант замутить
Зачем снимать, зачем сливать?Ромыч писал(а):проще то проще... вот только хотел бы сопротивление точнее измерить, не по глючной стрелки. Снимать датчик не хочу - тосол сливай-заливай. На выходных поищу у соседей, может у них валяется где))
Вижу только одни "вроде", "либо"....Ромыч писал(а):блин(( помогите написать процедуру обработки получения инфы с дс18б20, чтоб вывод был в трехзначном варианте. Уже все мозги сломал. ну не читает у меня ничего, либо выводит неправильно... желательно для кодвижина
может датчик подключаю не правильно? вроде как программа не находит датчик
Ага-ага, а ещё лучше сделайте всё за меняжелательно для кодвижина
Код: Выделить всё
#asm
.equ __w1_port=0x15 ;PORTC
.equ __w1_bit=3
#endasm
В каком смысле? Сколько юзаю разные цифровые датчики (DS1820, SHT10, BMP085) всюду достаточно прочитать документацию, подать на вход правильную диаграмму и прочитать результат.Ромыч писал(а):Почему приходится не считывать, а высчитывать температуру?
Код: Выделить всё
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);
}
Спасибо, ты сделал мой сегодняшний день!Ромыч писал(а):короче сделал чтоб работало)) изврат по качеству можно сравнить с немецкими фильмами, но работает:
Код: Выделить всё
temp=(ds18b20_temperature(0)/0.0625)/16; // читаем температуру
Код: Выделить всё
if (temp<0){ // если датчик выдаёт больше 1000
temp=5536+temp; // отнимаем от данных 4096
temp=-temp; // и ставим знак "минус"
}Код: Выделить всё
if (temp<0){ Код: Выделить всё
LcdDrawFont2(14,25);
LcdDrawFont2(10,36);
LcdDrawFont2(buffer[2],49);
LcdDrawFont2(buffer[3],62); Код: Выделить всё
if (temp<0){ // если датчик выдаёт больше 1000
temp=5536+temp; // отнимаем от данных 4096
temp=-temp; // и ставим знак "минус"
}Код: Выделить всё
LcdDrawFont2(10,36);
LcdDrawFont2(buffer[2],49);
LcdDrawFont2(buffer[3],62);Ромыч писал(а):Ну не знаю я что на входе! эта стандартная библа из кодвижина.
*ищет смайлик АПСТЕНУ*Ромыч писал(а):/0.0625 - это я встретил где то на форумах... а /16 - только так начала выводиться нужная циферка. Арифметику датчика/библиотек я так и не понял.
Я тебя разочарую, но именно "temp += 5536" и есть бяко-код, а вот "переворот" знака сделан абсолютно верно. Тока надо всего лишь выставить для себя флажок, что число-то отрицательное (для последующего вывода).Ромыч писал(а):На строку temp=5536+temp; тоже вышел опытным путем, когда температура отрицательная. А temp=-temp; согласен, бред. От говнокода еще не чистил, тоже кусок куска кода из интернетов))
Оно влияет на сам код.Ромыч писал(а):это функции вывода на дисплей. На температуру не влияет)Код: Выделить всё
LcdDrawFont2(10,36); LcdDrawFont2(buffer[2],49); LcdDrawFont2(buffer[3],62);