Ошибка компиляции для платы digispark

@korenevskiy


In file included from D:DocumentsArduinolibrariesEasyHID-mainusbdrvasm_includer.S:2:0:
D:DocumentsArduinolibrariesEasyHID-mainusbdrv/usbdrvasm.S:386:35: fatal error: usbdrvasm165.inc: No such file or directory
 #       include "usbdrvasm165.inc"
                                   ^
compilation terminated.
exit status 1
Ошибка компиляции для платы Digispark (Default - 16.5mhz).

.
Еще у Вас в описании есть пример, в этом примере не указан #include.

@GyverLibs

Внимательнее к Readme, библиотека работает только на 16 МГц платах. Примеры дополнил, спасибо

@GyverLibs

А зачем на дигиспарк, если не секрет? Там своя юсб либа же

@GyverLibs

Я добавил файлик под 16.5 МГц, но нужно в usbconfig.h вбить другой порт (B, на тиньке85) и нужный пин. Возможно заведётся

@korenevskiy

Я просто зашел на Али, и купил самую дешевую Ардуинку с USB. Просто ее позиционировали как Аналог.
А получается что и не совсем аналог.

@korenevskiy

#define USB_CFG_IOPORTNAME      B
#define USB_CFG_DMINUS_BIT      4
#define USB_CFG_DPLUS_BIT       3

эти параметры?

Распиновка

@korenevskiy

Компиляция, и прошивка прошла успешно.
.
Но виртуальная клава с примером из репозитория текст Keyboard.println(" Hello world!");
Не печатает.

@korenevskiy

в конструктор добавил pinMode(1, OUTPUT);
А в конец тела функции добавил

  digitalWrite(ledPin, HIGH); 
  delay(200); 
  digitalWrite(ledPin, LOW); 
  delay(200);

В результате модифицированный ваш пример 3 раза моргнул светодиодом. и больше ни чего не происходило. Соответственно тексты не пишет.

@korenevskiy

Вообще считаю Digispark должен стать более популярным чем Arduino, из-за цены.
Проблема Digispark это отсутствие нативной поддержки у ArduinoIDE.
Думаю что кто нибудь сделает клон ArduinoIDE со встроенными примерами и драйверами Digispark для пиара своего сайта/форума.

@GyverLibs

Абсолютно не согласен. Дигиспарк сейчас сильно подорожал и стоит не сильно дешевле чем та же Nano, а в ней простите возможностей на порядок больше. Если уж говорить о цене, то жалкий Дигиспарк стоит почти столько же, сколько esp8266, где жира ещё больше.
Arduino ide поддерживает Дигиспарк, достаточно вставить ссылку и установить ядро, как и для всех остальных ардуино-совместимых плат. Делать новую ide и поддерживать её актуальную версию ради предустановленной одной платы (!) Это совсем бред)

@korenevskiy

Я Digispark купил за 140р. А Arduino Nano стоит более 270р. А esp8266 нашел за 210р.
С IDE я наверно многого нафантазировал. Изменения наверно излишне.
.
Подскажите я правильные изменения внес в usbconfig.h?
Посоветуйте пожалуйста что может быть причиной не работы Gigispark у меня с Вашим примером работы клавиатуры.

@GyverLibs

Раньше 80р он стоил, а есп не подорожала. Если сравнить такие базовые параметры как объем памяти, скорость работы, количество ног… Дигиспарк стоит дороже, чем он должен стоить.
По usbconfig — подключу автора либы, пусть помогает.
И всё же, зачем это все если у диги есть своя родная либа для юсб?

@korenevskiy

И всё же, зачем это все если у диги есть своя родная либа для юсб?

@GyverLibs я уже 3тью либу скачиваю и родную пробывал. кроме родной ни одна не заработала.
Я через либу не могу отправить сигнал Гибернации либо Сна на ПК.
Так как задача в том чтобы при отсутсвии питания в сети выключить ПК. А ИБП сам по себе не имеет интерфейсов в принципе. Он был куплен самый дешовый.
Быть може конечно было бы уже задуматся о смене бесперибойника. Денег жалко, да и уже дело на принцип пошёл.

А у Диджи конечно себестоимость ниже. Но половину суммы съедается на доставку.
Если взять аналогичные товары, например контроллер зарядки для 16850 microUSB. То там видно что 3 устройства стоит 50 рублей, а 6 устройств стоят 70р (или типа в таком смысле.) В любом случае у всех контроллеров доставка предположим одинаковая. А если цена дешевле, то сильно в ущерб самого устройства. С другой стороны, если задачи простые, то зачем переплачивать, разве что только время сэкономить. В одном из роликов сказали что Digi вроде такой же, но везде есть свои особенности, тонкости и пока в каждой тонкости не разберешься хрен что заработает. Но я не знал что могут быть проблемы.

.

@GyverLibs

У программного usb есть ограничения, многие кнопки могут не работать. Лучше взять ту же 32u4 и не мучиться, у нее аппаратная поддержка

@korenevskiy

До момента доставки Диджи, я представлял как запускаю Диджи с прошивкой под HID UPS. Чтобы Диджи определялся как реальный UPS. Когда скачал либу под Ардуино, и посмотрел примеры, я просто офигел и понял что не осилю в принципе.. Тем более как бы разобраться с самим конроллером, а потом уже переходить к переделкам либы под свой дижи. И пришел к тому что ограничусь просто прошивкой от клавы с сигналом гибернации.
.
У 32u4 аппаратная поддержка USB? А у нее USB как последовательный порт работает или может работать как что угодно, претворяясь любым устройстом?

@GyverLibs

32u4 (Arduino micro) притворяется хидом и чем угодно

@korenevskiy

Подключите пожалуйста автора либы.

@GyverLibs

Он пока не у компьютера, как придет так придёт

@korenevskiy

Подскажите пожалуйста. Если я подключаю две клавы к ПК, то нажав на одной из них CapsLock, то он же загорается и на другой клаве.
А либа эта так же получает сигнал о CapsLock’е?

@GyverLibs

Я не знаю, не тестировал библиотеку, её сделал мой коллега

@korenevskiy

Только что нашел, модифицированный Arduino IDE со встроенной поддержкой Digispark.
Правда версия старая. Так как поддержка загрузки либ в IDE появилась недавно. Поэтому наверно ктото модифицировал версию IDE. А возможно производители Digispark это и сделали.

@GyverLibs

Зачем? Задача решается в три клика мышкой….

@korenevskiy

Зачем? Задача решается в три клика мышкой….

Ну да теперь, да. Но чтобы это сделать надо инструкцию посмотреть. Я вот посмотрел кучу инструкций где это рассказывалось. кое в чем разобрался. А без инструкций не чего не получится. Я работаю UX разработчиком.
Стараемся делать софт интуитивно понятный. Пример хорошей адаптивности. Например как в онлайн сбербанке в поле пароля программа удаляла пробелы за звездочками. Или у них пароли были одинаково восприимчивы к обоим регистрам. Фишка в том что на клавиатуре написаны буквы в большом регистре, но когда человек пишет, то почему то буквы пишутся в маленьком регистре. А за звездочками вообще не видно. Это для программистов и компьютерных аналитиков и дизайнеров все очевидно, а для всех остальных пенсионеров и просто других людей некоторые вещи вообще не очевидны и не понятны.
Я вот после первой прошивки Диджи 2 часа потратил на выяснение почему Диджи перестал прошиваться. Оказывается во всех инструкциях написано и звучит один в один фраза «Ардуино Digispark не нужно заранее подключать к компьютеру.» или
image
Как это нужно понимать? слово «не нужно» воспринимается как не обязательно (типа можно делать а можно и не делать).
Просто иногда оцениваю простоту экслуатации интерфейсов и иногда надуманно преувеличиваю проблему.

@GyverLibs

Каких кучу инструкций, зачем?? На официальной Вики дигистамп всё написано по пунктам

@korenevskiy

На офицальной Вики все на английском, русского нет.
Я пользовался инструкциями из яндекса и из ютюба.

@korenevskiy

Жалко что ArduinoIDE v2 не поддерживает Digi.

@GyverLibs

Инструкции на русском часто нерабочие, или работают только у автора :)

@korenevskiy

Вы поддержку Диджи добавляли, это Вы добавили usbdrvasm165.inc. А этот файлик является копией usbdrvasm16.inc?
Я сравнил эти 2 файла, они очень сильно отличаются.
Вы наверно его из другого проекта скопировали?. Просто Вы его очень быстро внесли в репозиторий.

@korenevskiy

@GyverLibs

является копией usbdrvasm16.inc?

Не знаю, автор либы скинул

Вы пробовали Platformio?

Да, ужасно неудобная и кривая IDE

@korenevskiy

Дешёвый аналог на STM32 нашёл. Стоит 160р. И работает на 72МГц и памяти всех видов больше .
Аппара ный USB есть.

@GyverLibs

Осталось научиться с ним работать)

@korenevskiy

@GyverLibs

Digi выдает ошибку

Очевидно, библиотека под 32U4

@Kiprus

#define USB_CFG_IOPORTNAME      B
#define USB_CFG_DMINUS_BIT      4
#define USB_CFG_DPLUS_BIT       3

эти параметры?

Распиновка

Как минимум из того что я могу сказать, в библиотеке используется INT0 прерывание, а вы используете пины B3 и B4 которые не являются прерываниями, вот оно и не работает.

По зависанию тоже есть предположение, библиотека инициализацирует INT0 прерывание на спад а из-за того что пин INT0 весит в воздухе и ловит помехи прерывание срабатывает каждую секунду чем не даёт выполнятся основному коду

@korenevskiy

Как минимум из того что я могу сказать, в библиотеке используется INT0 прерывание, а вы используете пины B3 и B4 которые не являются прерываниями, вот оно и не работает.

По зависанию тоже есть предположение, библиотека инициализирует INT0 прерывание на спад а из-за того что пин INT0 весит в воздухе и ловит помехи прерывание срабатывает каждую секунду чем не даёт выполнятся основному коду

Посоветуйте пожалуйста, какие именно параметры можно поменять. Примерное наименование параметров в либе скажите, буду очень признателен.
INT0 у меня подключен к резистору на плюс. Как его програмно отключить? Метод pinMode(); отключит прерывание на нем?
PS интересно то что изначально припаяв на P5 сигнал от внешнего БП о наличии питания в сети. Диджи постоянно глючил. Потом понял что P5 работает как сброс. Думается что этот пин переназначить.

@Kiprus

Как минимум из того что я могу сказать, в библиотеке используется INT0 прерывание, а вы используете пины B3 и B4 которые не являются прерываниями, вот оно и не работает.
По зависанию тоже есть предположение, библиотека инициализирует INT0 прерывание на спад а из-за того что пин INT0 весит в воздухе и ловит помехи прерывание срабатывает каждую секунду чем не даёт выполнятся основному коду

Посоветуйте пожалуйста, какие именно параметры можно поменять. Примерное наименование параметров в либе скажите, буду очень признателен. INT0 у меня подключен к резистору на плюс. Как его програмно отключить? Метод pinMode(); отключит прерывание на нем? PS интересно то что изначально припаяв на P5 сигнал от внешнего БП о наличии питания в сети. Диджи постоянно глючил. Потом понял что P5 работает как сброс. Думается что этот пин переназначить.

Без прерывания либа не будет работать, прерывание сделанно для получения данных по usb так что без него hid работать не будет

Из того что могу посоветовать это перекинуть Data- на PB2. И ещё важно что бы pull-up резистор(1.5k/2.2K) подключались программно (у дигиспарк припаян резистор между d- и 5V из-за чего даже без запуска библиотеки хост(ПК/ноут и т.д) начинает опрашивать Hid, а библиотека не отвечает)

Но что бы не парится этим всем лучше использовать либу которая создана специально для digispark

@korenevskiy

Как минимум из того что я могу сказать, в библиотеке используется INT0 прерывание, а вы используете пины B3 и B4 которые не являются прерываниями, вот оно и не работает.
По зависанию тоже есть предположение, библиотека инициализирует INT0 прерывание на спад а из-за того что пин INT0 весит в воздухе и ловит помехи прерывание срабатывает каждую секунду чем не даёт выполнятся основному коду

Посоветуйте пожалуйста, какие именно параметры можно поменять. Примерное наименование параметров в либе скажите, буду очень признателен. INT0 у меня подключен к резистору на плюс. Как его програмно отключить? Метод pinMode(); отключит прерывание на нем? PS интересно то что изначально припаяв на P5 сигнал от внешнего БП о наличии питания в сети. Диджи постоянно глючил. Потом понял что P5 работает как сброс. Думается что этот пин переназначить.

Без прерывания либа не будет работать, прерывание сделанно для получения данных по usb так что без него hid работать не будет

Из того что могу посоветовать это перекинуть Data- на PB2. И ещё важно что бы pull-up резистор(1.5k/2.2K) подключались программно (у дигиспарк припаян резистор между d- и 5V из-за чего даже без запуска библиотеки хост(ПК/ноут и т.д) начинает опрашивать Hid, а библиотека не отвечает)

Но что бы не парится этим всем лучше использовать либу которая создана специально для digispark

Конечно, я бы с радостью бы ее использовал, но там нет поддержки клавиши Сна. Конечно там есть печать символа по коду, но я не нашёл код клавиши сна. Я пробовал , не получалось. Быть может я пытался печатать правильный код, но делал это не в той кодировке.

Offline

Зарегистрирован: 09.02.2019

Здравствуйте подскажите собрал код в ардуино термометра на 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); 
  
}

Друг попросил меня найти проблему с компиляцией для его DigiSpark НА плате Tiny85.
Мы пытаемся составить скетч отсюда:
https://forum.arduino.cc/index.php?topic=314773.0

Но не повезло — что-то смешалось в заголовках или конфигурации, и я не знаю, что именно.

Этот ISR не компилируется:

ISR(TIMER1_OVF_vect) { //переполнение timer1

Сначала были некоторые ошибки, такие как TCR1 = 0; не определено в этом скетче, затем после игры с #define __ AVR_ATtiny85__, #undef _AVR_IOXXX_H_ и замены avr/io.h на iotn85.h пришли ошибки, такие как множественное определение __vector_x (?). Закомментируйте эту строку:
//attachInterrupt(0,zeroCrossingInterrupt, ПАДЕНИЕ)
помогло, но теперь даже это работает, а ИСР-нет.

Я знаю, что там много тайников и вы не видите, что происходит за занавесками, но я еще совсем потерялся…

Может быть, есть также проблема, у меня есть несколько установок в разных dirs, но я не знаю, как очистить старые (1.6.5-r2), и в конце концов оба работают одинаково, моя последняя свежая установка-1.8.9.

Есть ли у кого-нибудь опыт работы с демо-скетчом или какой-нибудь рабочий демо-скетч, использующий как compare match, так и overflow ISR ?

Редактировать
Информация о настройке
Эта плата выбрала (…AppDataRoamingArduino15packagesdigistumphardwareavr1.6.7boards.txt):

digispark-tiny.name=Digispark (Default - 16.5mhz)
digispark-tiny.upload.using=micronucleusprog
digispark-tiny.upload.protocol=usb
digispark-tiny.upload.tool=micronucleus
digispark-tiny.upload.maximum_size=6012
digispark-tiny.build.mcu=attiny85
digispark-tiny.build.f_cpu=16500000L
digispark-tiny.build.board=AVR_DIGISPARK
digispark-tiny.build.core=tiny
digispark-tiny.build.variant=digispark
digispark-tiny.upload.wait_for_upload_port = false
digispark-tiny.upload.use_1200bps_touch = false
digispark-tiny.upload.disable_flushing = false

И они доступны:

(...AppDataRoamingArduino15package_digistump_index.json)
...
"boards": [
  {
    "name": "Digispark (Default - 16.5mhz)"
  },
  {
    "name": "Digispark Pro (Default 16 Mhz)"
  },
  {
    "name": "Digispark Pro (16 Mhz) (32 byte buffer)"
  },
  {
    "name": "Digispark Pro (16 Mhz) (64 byte buffer)"
  },
  {
    "name": "Digispark (16mhz - No USB)"
  },
  {
    "name": "Digispark (8mhz - No USB)"
  },
  {
    "name": "Digispark (1mhz - No USB)"
  }
],
...

Правка 2
Новая попытка установки на W10
Еще несколько ссылок — 2-е руководство здесь:
https://www.electronicshub.org/getting-started-with-attiny85/

http://digistump.com/package_digistump_index.json
должны быть переведены на
https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

https://downloads.arduino.cc/arduino-1.8.9-windows.zip
W10
При установке отображается ошибка загрузки (тайм-аут?):
http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip

Скачал вручную (там был пустой файл с таким именем):
…AppDataLocalArduino15stagingpackages
avr-gcc-4.8.1-arduino5-i686-mingw32.zip

…AppDataLocalTemparduino_build_139604corecore.a(wiring.c.o): В функции `__vector_4′:

…AppDataLocalArduino15packagesdigistumphardwareavr1.6.7coretiny/wiring.c:93: множественное определение `__vector_4′

…AppDataLocalTemparduino_build_139604sketchsketch_jun28a.ino.cpp.o:…arduino-1.8.9SketchBooksketch_jun28a/sketch_jun28a.ino:60: впервые определено здесь

collect2.exe: ошибка: ld вернул 1 статус выхода

статус выхода 1
Ошибка компиляции для платы Digispark (по умолчанию — 16,5 МГц).

…AppDataLocalArduino15packagesdigistumphardwareavr1.6.7coretinycore_build_options.h (не нашел этот файл в arduino dir):

/*=============================================================================
  Build options for the ATtiny85 processor
=============================================================================*/

#if defined( __AVR_ATtiny25__ ) || defined( __AVR_ATtiny45__ ) || defined( __AVR_ATtiny85__ )
#define __AVR_ATtinyX5__
#endif

#if defined( __AVR_ATtinyX5__ )

/*
  For various reasons, Timer 1 is a better choice for the millis timer on the
  '85 processor.
*/
#define TIMER_TO_USE_FOR_MILLIS                   1

Еще один простой вариант — переписать или удалить ISR в проводке.:
…AppDataLocalArduino15packages digistumphardwareavr1.6.7coretinywiring.c

Например, после такого изменения удалось скомпилировать без проблем.

Самым простым решением было бы поместить этот код в мой ISR или вызвать его из другого.

#ifdef nothing
// bluebie изменил isr на noblock, чтобы он не испортил USB-библиотеки
ISR(MILLISTIMER_OVF_vect, ISR_NOBLOCK)
{
  // скопируйте их в локальные переменные, чтобы они могли храниться в регистрах
  // (изменчивые переменные должны считываться из памяти при каждом обращении)
  unsigned long m = millis_timer_millis;
  unsigned char f = millis_timer_fract;

/* rmv: The code below generates considerably less code (emtpy Sketch is 326 versus 304)...

  m += MILLIS_INC;
  f += FRACT_INC;
  if (f >= FRACT_MAX) {
    f -= FRACT_MAX;
    m += 1;
  }
...rmv */

  f += FRACT_INC;

  if (f >= FRACT_MAX) 
  {
    f -= FRACT_MAX;
    m = m + MILLIS_INC + 1;
  }
  else
  {
    m += MILLIS_INC;
  }

  millis_timer_fract = f;
  millis_timer_millis = m;
  millis_timer_overflow_count++;
}
#endif

Если вы переименуете wiring.c и перезапустите редактор, вы получите main.cpp:5: неопределенная ссылка на ошибку `init’, есть это «дерьмовое» сердце arduino:

#include <WProgram.h>

int main(void)
{
    init();

    setup();

    for (;;)
        loop();

    return 0;
}

WProgram.h начинается с:

#ifndef WProgram_h
#define WProgram_h

#include <stdlib.h>
#include <string.h>
#include <math.h>

#include <avr/interrupt.h>

#include "core_build_options.h"
#include "core_pins.h"
#include "wiring.h"
...

И init этого ATtiny85 (внутренняя проводка.c) evn выглядит так:

void init(void)
{
  // калибровка часов
  // перекалибровать часы, если они были откалиброваны загрузчиком (например, micronucleus)
  #if F_CPU != 16500000L
    if (OSCCAL != read_factory_calibration()) {
      // отрегулируйте калибровку с 16,5 МГц до 16,0 МГц
      if (OSCCAL >= 128) {
        // может быть, 8 лучше? ну да ладно - в любом случае только около 0,3% 
        OSCCAL -= 7;
      } else {
        OSCCAL -= 5;
      }
    }
  #endif

  // TODO: определите, установлены ли предохранители на PLL, обычный внутренний генератор или внешний, и измените поведение в следующем разделе...
  #if F_CPU < 16000000L
    cli();
    CLKPR = 0b10000000;
    #if F_CPU == 8000000L
      CLKPR = 1; // div 2
    #elif F_CPU == 4000000L
      CLKPR = 2 // div 4
    #elif F_CPU == 2000000L
      CLKPR = 3; // div 8
    #elif F_CPU == 1000000L
      CLKPR = 4; // div 16
    #elif F_CPU == 500000L
      CLKPR = 5; // div 32 = 500khz
    #elif F_CPU == 250000L
      CLKPR = 6; // div 64 = 250 кГц
    #elif F_CPU == 125000L
      CLKPR = 7; // div 128 = 125 кГц тактовая частота процессора
    #else
      #warning "Cannot prescale chip to specified F_CPU speed"
    #endif
  #endif

  // это нужно вызвать перед setup (), иначе некоторые функции там не будут работать
  sei();

  // На случай, если загрузчик плохо оставил наш миллисекундный таймер
  #if defined( HAVE_BOOTLOADER ) && HAVE_BOOTLOADER
    MillisTimer_SetToPowerup();
  #endif

  // Используйте таймер Millis для быстрого ШИМ
  MillisTimer_SetWaveformGenerationMode( MillisTimer_(Fast_PWM_FF) );

  // Millis timer-это всегда часы процессора, разделенные на MillisTimer_Prescale_Value (64)
  MillisTimer_ClockSelect( MillisTimer_Prescale_Index );

  // Включить прерывание overlow (это базовый системный tic-toc для millis)
  MillisTimer_EnableOverflowInterrupt();

  // Инициализация таймера, используемого для тонального сигнала
  #if defined( INITIALIZE_SECONDARY_TIMERS ) && INITIALIZE_SECONDARY_TIMERS
    initToneTimerInternal();
  #endif

  // Инициализация АЦП
  #if defined( INITIALIZE_ANALOG_TO_DIGITAL_CONVERTER ) && INITIALIZE_ANALOG_TO_DIGITAL_CONVERTER
    ADC_PrescalerSelect( ADC_ARDUINO_PRESCALER );
    ADC_Enable();
  #endif
}

2 июл 19,
@Tom

When i was compiling the code of sketch.ino I was receiving lot issues like

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: «Digispark (Default — 16.5mhz)»

In file included from C:UserssayedDesktopArduino Project WorksDigiSparkStealer-masterarduino_sourcesketchsketch.ino:1:0:

C:Program FilesWindowsAppsArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wttlibrariesKeyboardsrc/Keyboard.h:25:17: fatal error: HID.h: No such file or directory

#include «HID.h»

compilation terminated.

exit status 1

Error compiling for board Digispark (Default — 16.5mhz).

This report would have more information with
«Show verbose output during compilation»
option enabled in File -> Preferences.

plz tell me if I am doing something wrong.
waiting for your reply

Arduino Forum

Loading

Понравилась статья? Поделить с друзьями:
  • Ошибка компиляции для платы attiny2313 a 4313 no bootloader
  • Ошибка компиляции для платы arduino uno как исправить
  • Ошибка компиляции для платы arduino uno grbl
  • Ошибка компиляции для платы arduino uno exit status
  • Ошибка компиляции для платы arduino pro or pro mini