attiny85 и датчик температуры DS18b20

kiselev
Offline
Зарегистрирован: 02.07.2016

Доброго времени суток.Долго сидел на ардуино,захотел пересесть на что то маленькое.Взял Attiny85. Хочу сделать градусник.отладил код на ардуино,и через arduino as ISP  залил программу. при подключении я выяснил что tinny читает с него и получает -1,передкнул шину данных в ардуино. все работает,вообще не понимаю в чем проблемма. Думаю,проблемма в этой срочке:

int Temp1 = (data1[1]<< 8)+data1[0];

Temp1 = Temp1>>4;
поясните,что тут происходит,и можно ли заменить,зарание спасибо.
#include <OneWire.h>
 OneWire ds1(0);
void setup() {
pinMode(1,OUTPUT);
}
 
void loop() {

byte data1[2];
ds1.reset(); 
ds1.write(0xCC);
ds1.write(0x44);
delay(750);
ds1.reset();
ds1.write(0xCC);
ds1.write(0xBE);
data1[0] = ds1.read(); 
data1[1] = ds1.read();
int Temp1 = (data1[1]<< 8)+data1[0];
Temp1 = Temp1>>4;
if(Temp1==25){
digitalWrite(1,HIGH);
}else{
digitalWrite(1,LOW);
delay(100);
digitalWrite(1,HIGH);
delay(100);
digitalWrite(1,LOW);
delay(100);
digitalWrite(1,HIGH);
delay(100);
digitalWrite(1,LOW);
delay(100);
}
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Проблемма в этой строчке

OneWire ds1(0);

kiselev
Offline
Зарегистрирован: 02.07.2016

я туплю,но у attiny85 есть pin 0. поясни в чем косяк 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

это я туплю.

nik182
Offline
Зарегистрирован: 04.05.2015

Для какого чипа компилировали программу? Правильно ли выставлена скорость ядра фьюзами?

kiselev
Offline
Зарегистрирован: 02.07.2016

Я в интернете нашел что нужно выставить 8 Мгц. Это правильно ? 

 

kiselev
Offline
Зарегистрирован: 02.07.2016

все для attiny85 10 раз проверял 

kiselev
Offline
Зарегистрирован: 02.07.2016
 if ( !ds.search(addr)) {
    ds.reset_search();
    delay(250);
    digitalWrite(1,HIGH);
  delay(10);
  digitalWrite(1,LOW);
    return;
  }

вот тут он бегает по кругу и просто не может ничего найти,хотя если переткнуть шину в ардуин все прекрасно работает 

nik182
Offline
Зарегистрирован: 04.05.2015

По дефолту чипы поставляются с фьюзами на 1 МГц. Проверте, какие фьюзы у вас.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Частота точно правильно выставлена? По умолчанию в новой 85-ой 1МГц, Сколько у Вас реально высталено и сколько указано в программе?

kiselev
Offline
Зарегистрирован: 02.07.2016

програмирую с момощю arduino as ISP , сервис-->плата --> attiny85 8MHz выбираю это. не то делаю ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А во фьюзах что прошито? Вы их прошиваете сами или нет?

kiselev
Offline
Зарегистрирован: 02.07.2016

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, ... ну, Вы хотя бы загрузчик в тини прошиваете или только скетч?

kiselev
Offline
Зарегистрирован: 02.07.2016

сразу скетч кидаю через ардуино.Простые вещи типо blink работают без загрущика.Про загрущик не знаю ничего 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно.

В общем гуглите про фьюз-биты. И обязательно прочитайте. что у Вас там стоит сейчас и установите то, что реально нужно (в частности, частота 8МГц (если она у Вас 8 - а то может Вы кварц присобачили, кто Вас знает) и остальное тоже.

kiselev
Offline
Зарегистрирован: 02.07.2016

Кроме 8МГц что нибудь там еще нужно перестовлять.нет пользуюсь внутренним осцелятором 

ace
Offline
Зарегистрирован: 17.05.2012

Что этобыло?