Jump to content
tesla.qwartz

Ошибка компиляции attiny 85

Recommended Posts

Здравствуйте подскажите собрал код в ардуино термометра на ds18b20, проверил на Arduino Nano все работает, хотел залить в Digispark attiny 85 и Arduino IDE выдало ошибку компиляции для платы

Код

#include <OneWire.h>
#include <SPI.h> 
// провод CS подсоединяем к 8-му пину Arduino 
enum { reg = 8 }; 
OneWire ds(7); // Объект OneWire
int temperature = 0; // Глобальная переменная для хранения значение температуры с датчика DS18B20
 
long lastUpdateTime = 0; // Переменная для хранения времени последнего считывания с датчика
const int TEMP_UPDATE_TIME = 400; // Определяем периодичность проверок
void setup()
{
// инициализируем SPI 
  SPI.begin();   
// определяем 8-й пин Arduino как выход        
  pinMode(reg, OUTPUT); 
  //Serial.begin(9600);
}
//мы разобъем число на сотни, десятки и единицы, объявляем их здесь 
int hundreds=0, tens=0, ones=0; 
//время отображения каждой цифры       
int delayTime=5;        
//коды цифр на семисегментнике (0-9 и пустота)   
static uint8_t digit[31] = {0x08,0x18,0x88,0x98,0x48,0x58,0xC8,0xD8,0x28,0x38,0xFF,
0x04,0x14,0x84,0x94,0x44,0x54,0xC4,0xD4,0x24,0x34,0x02,0x12,0x82,0x92,0x42,0x52,0xC2,0xD2,0x22,0x32}; 
// коды позиций зажигаемого семисегментника (левый, центральный, правый) 
//static uint8_t pos[3]= {0xE7,0xEB,0xF3};             


void loop()
{

detectTemperature(); // Определяем температуру от датчика DS18b20
  //Serial.println(temperature); // Выводим полученное значение температуры
  // Т.к. переменная temperature имеет тип int, дробная часть будет просто отбрасываться
}
 
int detectTemperature(){
 
  byte data[2];
  ds.reset();
  ds.write(0xCC);
  ds.write(0x44);
 
  if (millis() - lastUpdateTime > TEMP_UPDATE_TIME)
  {
    lastUpdateTime = millis();
    ds.reset();
    ds.write(0xCC);
    ds.write(0xBE);
    data[0] = ds.read();
    data[1] = ds.read();
 
    // Формируем значение
    temperature = (data[1] << 8) + data[0]; temperature = temperature >> 4;
  }
  
//число, которое будем выводить 
  int f = temperature;                          
//выделяем сотни   
  hundreds=(f/100) ;    
//выделяем десятки                   
  tens=((f-hundreds*100)/10); 
//выделяем единицы            
  ones=f-hundreds*100-tens*10;   
//если сотен нет, не отображаем ничего в 3м разряде       
  if (hundreds==0) hundreds=10;   
//если сотен и десятков нет, не отображаем ничего во 2м разряде      
  if (hundreds==10 && tens==0)tens=10; 


//начинаем передачу по SPI 
  digitalWrite(reg, LOW);       
//передаем код цифры, соответствующей разряду сотен        
  SPI.transfer(digit[hundreds+21]);
//выбираем левый 7-сегментник        
  //SPI.transfer(pos[0]);      
//заканчиваем передачу            
  digitalWrite(reg, HIGH);
//пауза, равная delayTime              
  delay(delayTime);                    


//передаем код цифры, соответствующей разряду десятков         
  digitalWrite(reg, LOW); 
  SPI.transfer(digit[tens+11]);
//выбираем центральный 7-сегментник            
  //SPI.transfer(pos[1]);                
  digitalWrite(reg, HIGH); 
  delay(delayTime); 
        
//передаем код цифры, соответствующей разряду единиц 
  digitalWrite(reg, LOW); 
  SPI.transfer(digit[ones]);  
//выбираем правый 7-сегментник          
  //SPI.transfer(pos[2]);                
  digitalWrite(reg, HIGH); 
  delay(delayTime); 
  
}

sketch_sep09b.ino

Share this post


Link to post
Share on other sites
4 часа назад, tesla.qwartz сказал:

Arduino IDE выдало ошибку компиляции для платы

Вы считаете, что тут все экстрасенсы ?

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...