Думаю, что вам сюда http://www.engbedded.com/fusecalc По умолчанию процессор работает на внутреннем генераторе, вам надо переключить его на кварц, вероятно и внутренний делитель выключить...
Доброго времени суток, у меня небольшой вопрос (просьба) к автору кода, попробовал переделать его под свои задачи, не прокатило . Нет ли случайно возможности выложить библиотеки с JvTrayIcon.dcu, JvComponentBase.dcu, JvHidControllerClass.dcu, и др использованные при написание или ссылки на них
Вопрос с компонентами JvTrayIcon, JvComponentBase, JvHidControllerClass, JvExControls, JvPoweredBy, JvExExtCtrls, поставленный 2 года назад остается актуальным. Помогите найти библиотеки!
Собрал термометр по схеме: Датчик температуры DS18B20 + Конвертор USB-UART (TTL). Многие программы распознают устройство и корректно отображают температуру, хотя бы - OneWireViever.exe. Мне надо написать программку под свои задачи. Нашел исходник source20.zip, написанный на DELPHI для микросхем DS18S20, DS1820. Исходник компилируется, но неправильно отображается температура. Например, вместо 23 град. отображается минус 76 град! Разрядность DS18S20, DS1820 - 9 бит, а DS18B20 (установлена у меня) - 9-12 бит. Возможно, причина в разрядности?
Вот фрагмент кода:
Код:
function TMainForm.ReadParams:Boolean; var B0,B3,B4,B5,B6:Byte; begin Result:=false; PClear; if not TReset then exit; Result:=true; TByte($33); //Read ROM CRC:=0; B0:=TByte($FF); B1:=TByte($FF); B2:=TByte($FF); B3:=TByte($FF); B4:=TByte($FF); B5:=TByte($FF); B6:=TByte($FF); TByte($FF);
EID.Text:=Format('%.2xH',[B0]); if B0=$10 then if (B6*256+B5)>=8 then EName.Text:='DS18S20' else EName.Text:='DS1820' else EName.Text:='UNKNOWN'; ESnum.Text:=Format('%.2x%.2x%.2x%.2x%.2x%.2xH', [B6,B5,B4,B3,B2,B1]); if CRC=0 then ECRC.Text:='OK' else ECRC.Text:='FAIL';
if not TReset then exit; TByte($CC); //Skip ROM TByte($B8); //Recall EEPROM
if not TReset then exit; TByte($CC); //Skip ROM TByte($BE); //Read Scratchpad TByte($FF); TByte($FF); Usr1:=TByte($FF); Usr2:=TByte($FF); EUsr1.Text:=Format('%.2xH',[Usr1]); EUsr2.Text:=Format('%.2xH',[Usr2]); UpDOwn1.Position:=Usr1; UpDOwn2.Position:=Usr2; UpDown1.Enabled:=true; UpDown2.Enabled:=true; EUsr1.Enabled:=true; EUsr2.Enabled:=true; MWrUsrBytes.Enabled:=true; end;
Помогите, пожалуйста, подправить код под 12 разрядов. Если я ошибаюсь, тогда - где копать? Заранее благодарю.
Собрал схему на DS18В20 (9-12 бит) и запустил исходник. По умолчанию устанавливается конфигурация на 9 бит. Помогите установить (записать) конфигурацию, чтобы отображалась температура с дискретностью 0,1 градуса. Сейчас дискретность - 0,5 градуса. Заранее благодарю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения