Не работает код на ATTiny10

ну что ты как маленький :slight_smile: кодом выкладывай, а не картинкой.
Как ТС пробовать станет?

за безделье и бездействие, ТС надо наказать и пусть с экрана набирает
но ладно…

Спойлер
uint16_t note[7] = { 1911, 1432, 1517, 1432, 956, 956, 1911 };

void setup() {
  DDRB |= (1 << PB2);
}

void loop() {
  for (uint8_t i = 0; i < 7; i++) {
    uint16_t ms = 0;
    do {
      PORTB |= (1 << PB2);
      for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
      PORTB &= ~(1 << PB2);
      for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
      ms += (note[i] / 100) * 2;
    } while (ms < 5000);
  }
  _delay_ms(500);
}
2 лайка

да он бы нам совсем не нужен, кабы у кого из нас эта тинька была :slight_smile:

этт точно, вот была бы, ей богу проверил бы))

Ребята!!! Вы круты… Высший пилотаж! Вот только попробовать я смогу только завтра. Вся эта хрень у меня на работе осталась… Потерпите? Отчитаюсь в 9:00 по Москве…

Поставил будильник на 8:59.

2 лайка

не проспи!

Мне, глядя на вас, остается только глазами хлопать…

А локальные переменные (байта 3 имеется)?)))

А вообще - я рад что в компании ТАКИХ маньяков :smiley:

щас @Komandir этот код еще в два раза ужмет, 100500 )))

uint16_t note[7] = { 1911, 1432, 1517, 1432, 956, 956, 1911 };

int main () {
  DDRB |= (1 << PB2);

  while (1) {
    for (uint8_t i = 0; i < 7; i++) {
      uint16_t ms = 0;
      do {
        PORTB |= (1 << PB2);
        for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
        PORTB &= ~(1 << PB2);
        for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
        ms += (note[i] / 100) * 2;
      } while (ms < 5000);
    }
    _delay_ms(500);
  }
}

Скетч использует 224 байт (21%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 32 байт для локальных переменных. Максимум: 32 байт.

:smiley:

1 лайк

я увижу код в 100 байт али нет? Позорище!!! )))

хуже чем в #83 - верни сетуп-луп взад :slight_smile:

Почему хуже? В #83 у меня получалось так:

Скетч использует 230 байт (22%) памяти устройства. Всего доступно 1024 байт.

А у @xDriver тот же код 212

Внимание (барабанная дробь)!
Вот скотина! Вчера “Дудка” из Arduino IDE 2.3.2 нормально все загружала, а сегодня - нихрена

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9003 (probably t10)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Users\Alexander\AppData\Local\Temp\arduino\sketches\E673D4DEB036583CE9B421F3EE418922/sketch_apr3a.ino.hex"
avrdude: writing flash (244 bytes):

Writing | ################################################## | 100% 1.03s

avrdude: 244 bytes of flash written

avrdude done.  Thank you.

Failed programming: uploading error: exit status 0xc0000005

Ладно… Берем *.hex и заливаем через адаптированный SinaProg 2.1.1
Yeesss!!! :grin: :smile:

uint16_t note[7] = { 1911, 1432, 1517, 1432, 956, 956, 1911 };

void setup() {
  DDRB |= (1 << PB2);
}

void loop() {
  for (uint8_t i = 0; i < 7; i++) {
    uint16_t ms = 0;
    do {
      PORTB |= (1 << PB2);
      for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
      PORTB &= ~(1 << PB2);
      for (uint16_t j = note[i]; j > 0; j--) _delay_us(1);
      ms += (note[i] / 100) * 2;
    } while (ms < 2500);
  }
  _delay_ms(500);
}

Немного подправил тайминги для аутентичности (эта мелодия акустического маяка на проходной предприятия для слепых в моем городе Ступино в 70-80 года. Маяк работал до 1992 года).
А я же могу любые тайминги в любом разумном количестве в массив забивать?

Благословляю, отрок.

Пусть из #92 у себя скомпилирует…

примерно до 350 нот