Attiny85 и прерывание.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Umka пишет:

С PB5 и я могу работать :)


А у моей дигиспарк платы ресет залочен, тоесть он работает как ресет.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Так то у дигиспарк, я то с Тинькой работаю, а то что она на плату Спарка припаяна - это ее проблемы. Да собственно в чем проблема, изменить 1 бит в фьюзах и будет пин вместо ресета и непрошиваемый мк. В готовом изделии и нефиг прошивать. А откачать при желании контроллер не сложно, я уже так делал. Тут памяти и так мало, а еще загрузчик в ней хранить зачем-то :)

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Незачем, просто лень собирать HV программатор.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Диммер теперь и по ШИМ рулится.


// Voltage controlled dimmer with ATtiny85
//http://forum.arduino.cc/index.php?topic=314773.0

#include <avr/io.h>
#include <avr/interrupt.h>

#define DETECT 2      //zero cross detect, interrupt 0, is physical pin 7
#define GATE 3        //triac gate is physical pin 2
#define PULSE 2       //trigger pulse width (counts)
#define INSTELPIN 2   // =A2 (digital pin4) is physical pin 3 
const byte averageFactor = 10;   //smoothing level (0 = not smoothing)
int sensorValue = 0;
volatile byte ocr,jj;

void setup() {
  // set up pins
  DDRB &= ~(1 << DETECT); //zero cross detect
  PORTB |= (1 << DETECT); //enable pull-up resistor
  DDRB |= 1 << GATE; //triac gate control
  GIMSK = 1 << PCIE;
  PCMSK = 1 << PCINT1;
  // set up Timer1
  TCCR1 = 0;     // stop timer
  OCR1A = 50;    //initialize the comparator
  TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt
  sei();  // enable interrupts
  // set up zero crossing interrupt
  attachInterrupt(0, zeroCrossingInterrupt, FALLING);
}

//Interrupt Service Routines
void zeroCrossingInterrupt() {
  TCCR1 =0;
  TCNT1 = 0;   //reset timer - count from zero
  TCCR1 = B00001010;        // prescaler on 1024, see table 12.5 of the tiny85 datasheet
}

ISR(TIMER1_COMPA_vect) {   //comparator match
  PORTB |= (1 << GATE); //set triac gate to high
  TCNT1 = 255 - PULSE;     //trigger pulse width, when TCNT1=255 timer1 overflows
}

ISR(TIMER1_OVF_vect) {      //timer1 overflow
  PORTB &= ~(1 << GATE); //turn off triac gate
  TCCR1 = 0;                //disable timer stop unintended triggers
}

void loop() {    // use analog input to set the dimmer
  int oldsensorValue = sensorValue;
  sensorValue = analogRead(INSTELPIN);
  if (averageFactor > 0)        // усреднение показаний для устранения "скачков"
  {
    sensorValue = (oldsensorValue * (averageFactor - 1) + sensorValue) / averageFactor;
  }
  OCR1A = map(sensorValue, 0, 1023, 245, 2);
}

 

Пруф https://www.youtube.com/watch?v=wXA2jGXWzno

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Umka пишет:

Диммер теперь и по ШИМ рулится.


// Voltage controlled dimmer with ATtiny85
//http://forum.arduino.cc/index.php?topic=314773.0

#include <avr/io.h>
#include <avr/interrupt.h>

#define DETECT 2      //zero cross detect, interrupt 0, is physical pin 7
#define GATE 3        //triac gate is physical pin 2
#define PULSE 2       //trigger pulse width (counts)
#define INSTELPIN 2   // =A2 (digital pin4) is physical pin 3 
const byte averageFactor = 10;   //smoothing level (0 = not smoothing)
int sensorValue = 0;
volatile byte ocr,jj;

void setup() {
  // set up pins
  DDRB &= ~(1 << DETECT); //zero cross detect
  PORTB |= (1 << DETECT); //enable pull-up resistor
  DDRB |= 1 << GATE; //triac gate control
  GIMSK = 1 << PCIE;
  PCMSK = 1 << PCINT1;
  // set up Timer1
  TCCR1 = 0;     // stop timer
  OCR1A = 50;    //initialize the comparator
  TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt
  sei();  // enable interrupts
  // set up zero crossing interrupt
  attachInterrupt(0, zeroCrossingInterrupt, FALLING);
}

//Interrupt Service Routines
void zeroCrossingInterrupt() {
  TCCR1 =0;
  TCNT1 = 0;   //reset timer - count from zero
  TCCR1 = B00001010;        // prescaler on 1024, see table 12.5 of the tiny85 datasheet
}

ISR(TIMER1_COMPA_vect) {   //comparator match
  PORTB |= (1 << GATE); //set triac gate to high
  TCNT1 = 255 - PULSE;     //trigger pulse width, when TCNT1=255 timer1 overflows
}

ISR(TIMER1_OVF_vect) {      //timer1 overflow
  PORTB &= ~(1 << GATE); //turn off triac gate
  TCCR1 = 0;                //disable timer stop unintended triggers
}

void loop() {    // use analog input to set the dimmer
  int oldsensorValue = sensorValue;
  sensorValue = analogRead(INSTELPIN);
  if (averageFactor > 0)        // усреднение показаний для устранения "скачков"
  {
    sensorValue = (oldsensorValue * (averageFactor - 1) + sensorValue) / averageFactor;
  }
  OCR1A = map(sensorValue, 0, 1023, 245, 2);
}

 

Пруф https://www.youtube.com/watch?v=wXA2jGXWzno


Схемку приложите?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

На первой странице.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Umka пишет:

Вот схема. Плату могу показать, но буду переделывать.

 

 

А какие номиналы RC фильтра? Или Вы сделали без него?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Я сделал 100Ом и 1000мкФ. 

kharlashkin
Offline
Зарегистрирован: 12.12.2016

Добрый день!

Прошу не сильно пинать меня, так как "я не волшебник, а только учусь", но хотелось бы задать несколько вопросов. Есть вот такая железка от дядюшки Ляо:

Пытаюсь с её помощью и ATtiny85 MicroUSB сделать плавное управление обычным бытовым вентилятором на 220В.

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

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

kharlashkin пишет:

Есть вот такая железка ... будет ли работать

Если у Вас есть железка, то какая именно религия не позволяет Вам просто взять и попробовать?

kharlashkin
Offline
Зарегистрирован: 12.12.2016

ЕвгенийП пишет:

Если у Вас есть железка, то какая именно религия не позволяет Вам просто взять и попробовать?

Да дело не в религии ;) У меня слёту дома не завелось ПО для прошивки из среды Arduino, так как usb-hub под рукой не оказалось. Сегодня притянул его на рабочее место, где онный имеется - все завелось. Перед этим два дня пробовал завести под Arduino Uno, перепробовал туеву хучу разного кода и подходов - не хочет корректно крутить вентилятор.

Сегодня нагуглил эту темку, дай думаю спрошу может кто пробовал "наступать на мои грабли" - за спрос же в нос не бьют пока ;)

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.

kharlashkin
Offline
Зарегистрирован: 12.12.2016

Umka пишет:

Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.

"Пользуясь случаем"© Хочу Вас поблагодарить за проделанный труд, о результатах моих отпишусь вечером.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Да не за что, а труд тут коллективный. Если получится отвязаться от ошибки IDE буду признателен. Не у всех программатор есть.

kharlashkin
Offline
Зарегистрирован: 12.12.2016

Umka пишет:

Да не за что, а труд тут коллективный. Если получится отвязаться от ошибки IDE буду признателен. Не у всех программатор есть.

Эмм... Вы наверное это имели ввиду?


collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Digispark (Default - 16.5mhz).

Решил попробовать прошить скетч, и вывалилась такая ошибка. Нагуглилось решение прошивки ATtiny85 с помощью самой ардуины.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012
{archive_file_path}(wiring.c.o): In function `__vector_4':
C:\Users\Ђ¤¬Ё­Ёбва в®а\AppData\Roaming\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/wiring.c:93: multiple definition of `__vector_4'
C:\Users\836D~1\AppData\Local\Temp\build7790090033196286548.tmp\dimmer_v3i2c.cpp.o:C:\Program Files\Arduino/dimmer_v3i2c.ino:44: first defined here
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.

 

kharlashkin
Offline
Зарегистрирован: 12.12.2016

В общем и целом думаю что плата первая была с брачком (потому как наотрез отказывалась определяться в ноутбуке и под Ubuntu и под Windows 10, но при этом в двух двругих ПК виделась), ну и потом спалил я её (потому как одним вечером перепутал питание с землей). В итоге купил новую - которая без проблем увиделась в том же ноутбуке и скетч от Arduino заработал "как родной".

#include "SoftSerial.h"
#include "TinyPinChange.h"

SoftSerial mySerial(3, 4);

#define ControlSimistor 1 //  Выход на симистор, физический порт P1
#define ControlZero 2 // Вход контроля перехода через 0, физический порт P2

volatile byte dimming = 0; //  Начальное значение мощности

void setup()
{
  mySerial.begin(9600);
  pinMode(ControlSimistor, OUTPUT); // Включаем работу выхода на симистор
  pinMode(ControlZero, INPUT); // Переключаем контроль перехода через 0 на выход
  digitalWrite(ControlZero, HIGH); // Активируем контроль перехода через 0
  attachInterrupt(0, zero, RISING); //  Внешнее прерывание контроля перехода через ноль
}

void zero() //  Если есть переход через 0
{
  if (dimming >= 255) // Если задано максимальное значение
  {
    digitalWrite(ControlSimistor, HIGH); // Тиристор постоянно открыт
  }
  else if (dimming <= 10) // Если минимум
  {
    digitalWrite(ControlSimistor, LOW); // Тиристор закрыт
  }
  else if (dimming > 10 && dimming < 255) // Если не минимум и не максимум
  {
    digitalWrite(ControlSimistor, LOW); // Сначала закрываем
    delayMicroseconds((5100 - dimming * 20)); // Ждем
    digitalWrite(ControlSimistor, HIGH); // Открываем тиристор
  }
}

void loop()
{
  if (mySerial.available())
  {
    dimming = mySerial.read();
  }
} 

Значения мощности на вентилятор передавал с Arduino Uno.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

А скетч такой откуда?

kharlashkin
Offline
Зарегистрирован: 12.12.2016

Сам написал - изначально пробовал его для arduino, на тиньке тоже без проблем встал.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Плохо что с delay, с таймером можно и 3 канала сделать. 

kharlashkin
Offline
Зарегистрирован: 12.12.2016

Umka пишет:

Плохо что с delay, с таймером можно и 3 канала сделать. 

Ну тут "дело хозяйское" - мне нужно управлять всего лишь одним тиристором, но ничто не мешает управлять большим количеством (кроме количества пинов). Реализация без delay делается в приницпе довольно просто.

yray
Offline
Зарегистрирован: 08.01.2015

Подскажите пожалуста, из сабжевого скетча нельзя убрать i2c, чтобы осталось только ШИМ управление и можно было использовать вместо 85 значительно более дешевую 13 тньку ?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

yray пишет:

...использовать вместо 85 значительно более дешевую 13 тньку ?

13  -55р.

85 -110р.

Это в ЧипДипе, не на Али, где 41 и 65, если за 10 и больше.

Аху..нная разница в цене. Это я еще ДИП корпуса сранивал, что дороже.

Даже для мелкого производства  25 рублей разницы -- разорительны. ;)

========================

Поочему нас окружают идиоты? Если что - вопрос чисто риторический.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

wdrakula пишет:

yray пишет:

...использовать вместо 85 значительно более дешевую 13 тньку ?

13  -55р.

85 -110р.

Это в ЧипДипе, не на Али, где 41 и 65, если за 10 и больше.

Аху..нная разница в цене. Это я еще ДИП корпуса сранивал, что дороже.

Даже для мелкого производства  25 рублей разницы -- разорительны. ;)

========================

Поочему нас окружают идиоты? Если что - вопрос чисто риторический.

расшифруй на языке русского-Чехова, а не ниггера-Пушкина, что ты имел ввиду - разорительна разница в цене 40% комплектующих или нет?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Клапауций! 40% это много... Для производства. 50р ничтожно для штучного изделия. Ок?

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

wdrakula пишет:
Клапауций! 40% это много... Для производства. 50р ничтожно для штучного изделия. Ок?

дык! какое штучное исделие? - Роися падымается скален.
на каждой кухне нонче серийное производство.
в междуящичном пространстве... холодильником и этой сраной бадьёй со сраной квашеной капустой. 
импортосамещение шагает по России от японского Сахалина до немецкого Кёнинсберга.
денег нет, но вы держитесь(с) - каждая копейка на счету.
 
О_О
nik182
Offline
Зарегистрирован: 04.05.2015

Я извиняюсь, что влез в ваш высоконаучный спор, но есть ешё attiny45 за 60 руб в чипе.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

// Voltage controlled dimmer with ATtiny85
//http://forum.arduino.cc/index.php?topic=314773.0

#include <avr/io.h>
#include <avr/interrupt.h>

#define DETECT 2      //zero cross detect, interrupt 0, is physical pin 7
#define GATE 3        //triac gate is physical pin 2
#define PULSE 2       //trigger pulse width (counts)
#define INSTELPIN 2   // =A2 (digital pin4) is physical pin 3 
const byte averageFactor = 10;   //smoothing level (0 = not smoothing)
int sensorValue = 0;
volatile byte ocr,jj;

void setup() {
  // set up pins
  DDRB &= ~(1 << DETECT); //zero cross detect
  PORTB |= (1 << DETECT); //enable pull-up resistor
  DDRB |= 1 << GATE; //triac gate control
  GIMSK = 1 << PCIE;
  PCMSK = 1 << PCINT1;
  // set up Timer1
  TCCR1 = 0;     // stop timer
  OCR1A = 50;    //initialize the comparator
  TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt
  sei();  // enable interrupts
  // set up zero crossing interrupt
  attachInterrupt(0, zeroCrossingInterrupt, FALLING);
}

//Interrupt Service Routines
void zeroCrossingInterrupt() {
  TCCR1 =0;
  TCNT1 = 0;   //reset timer - count from zero
  TCCR1 = B00001010;        // prescaler on 1024, see table 12.5 of the tiny85 datasheet
}

ISR(TIMER1_COMPA_vect) {   //comparator match
  PORTB |= (1 << GATE); //set triac gate to high
  TCNT1 = 255 - PULSE;     //trigger pulse width, when TCNT1=255 timer1 overflows
}

ISR(TIMER1_OVF_vect) {      //timer1 overflow
  PORTB &= ~(1 << GATE); //turn off triac gate
  TCCR1 = 0;                //disable timer stop unintended triggers
}

void loop() {    // use analog input to set the dimmer
  int oldsensorValue = sensorValue;
  sensorValue = analogRead(INSTELPIN);
  if (averageFactor > 0)        // усреднение показаний для устранения "скачков"
  {
    sensorValue = (oldsensorValue * (averageFactor - 1) + sensorValue) / averageFactor;
  }
  OCR1A = map(sensorValue, 0, 1023, 245, 2);
}


 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Не по ШИМ, а по напряжению на аналоговом входе рулица. Прерывание занято в диммере. Из ШИМ сделать постоянку не сложно конденсатором емким.

yray
Offline
Зарегистрирован: 08.01.2015

Не компилируется этот скетч под attiny13 в arduino ide, выдаёт кучу ошибок












C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void setup()':

Start:23: error: 'TCCR1' was not declared in this scope

   TCCR1 = 0;     // stop timer

   ^

Start:24: error: 'OCR1A' was not declared in this scope

   OCR1A = 50;    //initialize the comparator

   ^

Start:25: error: 'TIMSK' was not declared in this scope

   TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt

   ^

In file included from c:\users\yray\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\io.h:99:0,

                 from C:\Arduino\hardware\attiny13\avr\cores\core13/WProgram.h:22,

                 from C:\Arduino\hardware\attiny13\avr\cores\core13/Arduino.h:11,

                 from sketch\Start.ino.cpp:1:

Start:25: error: 'OCIE1A' was not declared in this scope

   TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt

               ^

Start:25: error: 'TOIE1' was not declared in this scope

   TIMSK = _BV(OCIE1A) | _BV(TOIE1);  //interrupt on Compare Match A | enable timer overflow interrupt

                             ^

Start:28: error: 'attachInterrupt' was not declared in this scope

   attachInterrupt(0, zeroCrossingInterrupt, FALLING);

                                                    ^

C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void zeroCrossingInterrupt()':

Start:33: error: 'TCCR1' was not declared in this scope

   TCCR1 =0;

   ^

Start:34: error: 'TCNT1' was not declared in this scope

   TCNT1 = 0;   //reset timer - count from zero

   ^

Start:35: error: 'B00001010' was not declared in this scope

   TCCR1 = B00001010;        // prescaler on 1024, see table 12.5 of the tiny85 datasheet

           ^

C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void TIMER1_COMPA_vect()':

Start:40: error: 'TCNT1' was not declared in this scope

   TCNT1 = 255 - PULSE;     //trigger pulse width, when TCNT1=255 timer1 overflows

   ^

C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void TIMER1_OVF_vect()':

Start:45: error: 'TCCR1' was not declared in this scope

   TCCR1 = 0;                //disable timer stop unintended triggers

   ^

C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void loop()':

Start:55: error: 'OCR1A' was not declared in this scope

   OCR1A = map(sensorValue, 0, 1023, 245, 2);

   ^

exit status 1
'TCCR1' was not declared in this scope

Чемто еще его можно скомпилировать ?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

А есть ли в Attiny13 такие регистры и счетчики?

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

yray пишет:

Чемто еще его можно скомпилировать ?

Ничем нельзя скомпилировать программу, которая использует таймер №1, которого попросту нет в целевом устройстве.

Судя по этому Вашему вопросу, ответ на Ваш изначальный вопрос

yray пишет:
нельзя убрать i2c, чтобы осталось только ШИМ управление и можно было использовать вместо 85 значительно более дешевую 13 тньку ?

должен быть: нет, Вам нельзя. Чтобы это сделать, нужно переписать программу (а, скорее всего, и библиотеки, заодно), а Вы, похоже, не понимаете, что там написано.

yray
Offline
Зарегистрирован: 08.01.2015

с скетче вроде только один таймер задействован, если использовать таймер 0 получится ?

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

yray пишет:

с скетче вроде только один таймер задействован, если использовать таймер 0 получится ?

С той, квалификацией, которую Вы сейчас демонстрируете - нет. Если займётесь этим серьёзно, изучите матчасть, навостритесь что-то делать самостоятельно, то, конечно, получится.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

я тут решил недавно впихнуть в Attiny85 библиотеку Wire чтоб с oled дисплеем работать, в итоге плюнул - знаний явно не хватает (или переписывать с нуля буду месяцев так несколько), нашел TinyWireM - влезла, но впереди еще прикрутить датчик BME280 - а там уже наверняка придется ручками по I2C  с ним работать, библиотек облегченных не нашел.

Так что у вас два пути: писать/оптимизировать самому библиотеки для attiny13 ну или выбрать МК подороже.

 
Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Да с i2c там не сложно же ручками. Попривыкали к библиотекам!

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

andycat пишет:

библиотек облегченных не нашел.

Есть секретный сайт, о котором знают только посвящённые и никогда никому про него не говорят (как бы меня не казнили за то, что я Вам скажу). Называется GitHub.

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

Umka пишет:

Да с i2c там не сложно же ручками. Попривыкали к библиотекам!

Там не надо ручками. У Тиньки есть довольно универсальный протокол USI который можно использовать и как SPI (примеры есть в даташите на тиньку) и как I2C - примеры есть в appnote от Atmel (вернее, там есть ссылка на страницу с примерами - http://start.atmel.com/#examples/)

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Ручками - это команду по адресу послать и ответ прочитать. А если там (о ужас!) еще и 2-3 байта прилетит, то из них надо значение выковырять. Для избалованных либами эта задача может сложной оказаться. Ну, тут либо Тинька, либо либы.

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

Ну, почему "либо - либо". Я же в посте #137 дал ссылку на библиотеку. 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Потому что это аналог Wire, а надо чтоб еще для каждого i2c датчика своя либа влезала. Я так понял хотелки. 

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

Какая ещё своя? I2C одной на всех хватит.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Мы щас об одном и том же говорим. 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

во вы флуд развели :)

чьи хотелки? мои? я то со своими сам думаю справлюсь, уж с последовательностью команд передачи/приема BME 280 как нибудь разберусь.

и я бы тоже почитал бы с удовольствием русский перевод даташита с толковыми комментариями :)

 

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

andycat пишет:

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

Зачем в переводе-то? При любом, даже самом наикачественном переводе, всё равно какие-то нюансы оригинала будут потеряны.

yray
Offline
Зарегистрирован: 08.01.2015
Umka
Подскажите как вы заливали ваш скетч в digispark?
Через arduino ide по usb в режиме digispark он не компилируется, в режиме attiny через arduino isp выпаянная из digispark 85 не прошивается как я понимаю из за залитого в неё загрузчика digispark - как прошить ваш скетчь в 85 тиньку из digispark ?
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Купить отдельную tiny без загрузчика

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Блин.  Недавно получил Дигиспарки

https://ru.aliexpress.com/item/5pcs-GY-Digispark-kickstarter-miniature-m...

В IDE для них все поставил как написана на скрижалях гугля. 

И ни одну прошить не могу через USB. У них загрущика штоли нету? 

 
Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

DetSimen пишет:

И ни одну прошить не могу через USB. У них загрущика штоли нету? 

там же нужно ловким движением в нужное время втыкать ега в юсб и оно прошивается в момент подключения в юсб - т.е. жмёшь кнопку "загрузить" и только затем тебя попросить воткнуть в юсб. О_О

Attiny85-digispark-6.png

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Да, попадаются Спарки без загрузчика. И даже с залоченным ресетом. 

Шью как обычную Attiny программатором. Сделал переходник для UsbAsp и готово. Аккуратно, если из Arduino IDE зашить загрузчик в Digispark, то пин ресета залочится. Такие фьюзы выставлены в boards.txt и никто их менять походу не собирается.

Я тут ролик про прошивку загрузчиков в Мегу делал, с Тини то же самое https://www.youtube.com/watch?v=ZTKsBBE9aGQ

Если сильно надо - сделаю видос и по шитью Спарков.