Хотел сделать сувенирчик-пищалку на ATTiny10. Использовал ядро ATTiny10 Core с аддоном от Гайвера. Вот код, который работает на ATTiny13, но не работает на ATTiny10. Виснет на первом элементе массива.
uint16_t note[7]={1911, 1432, 1517, 1432, 956, 956, 1911};
uint8_t i ;
uint32_t ms ;
void setup() {
pinMode(PB2, OUTPUT);
i = 0;
ms = millis();
}
void loop() {
ms = millis();
do {
digitalWrite(PB2, HIGH);
delayMicroseconds(note[i]);
digitalWrite(PB2, LOW);
delayMicroseconds(note[i]);
}
while (millis() - ms < 500);
ms = millis();
digitalWrite(PB2, LOW);
delay(10);
i++;
if (i == 7) {
digitalWrite(PB2, LOW);
delay(500);
i = 0;
}
}
Уже обратился… Первый мой пост удалил модератор, сейчас открыл второй с тем же вопросом.
“…не так сидишь, не так стоишь” форум у него, какой то тоталитарный…
Я понимаю…, но аддон-то, вроде, работает. Просто Гайвер адаптировал команды (частично) под Arduino IDE. Для меня это удобнее, ибо в оригинальном ядре надо с регистрами портов работать, а для меня это - темный лес…
Я нашел косяк в первом посте (скопипастил криво и не проверил), только он (пост), пропал. Я не пойму - что не так с кодом, который работает на любом другом контроллере и не работает на
10-ой тиньке… Может аддон кривой, а может таймер в 10-ой тиньке специфический…
Этот код и правда лучше.
Но что интересно - вы и про тот код говорили, что он на других МК работает.
И про этот так же говорите.
Интересно, а завтра вы с новым кодом не придете?
В отличии от вчерашнего, этот код даже по нотам должен переходить, хотя и медленно.
Меня смущает, что у вас уже занято 19 байт оперативки из 32х
А что там еще у Гайвера в аддоне, если у него там и миллис и микрос есть, кто знает?
Наиболее правильный вопрос вам задали в новой ветке на гайвере - почему вам надо использовать именно тини10? У вас их вагон со времен СССр остался?
Я и говорю… Код с самого начала был такой, но после копипаста на увидел, что не скопировались квадратные скобки с переменной [i]. Увидел только после вашего замечания.
ATTiny10 у меня еще 7 шт. осталось и хотел сделать брелок-сувенирчик… маленький… и пищит… прикольно же. Почему - нет…?
sketch_apr02a.ino: In function ‘void setup()’:
sketch_apr02a:6:16: error: ‘OUTPUT’ was not declared in this scope
pinMode(PB2, OUTPUT);
^
sketch_apr02a:6:22: error: ‘pinMode’ was not declared in this scope
pinMode(PB2, OUTPUT);
^
sketch_apr02a:8:15: error: ‘millis’ was not declared in this scope
ms = millis();
^
C:\Users\root\AppData\Local\Temp\arduino_modified_sketch_751043\sketch_apr02a.ino: In function ‘void loop()’:
sketch_apr02a:11:15: error: ‘millis’ was not declared in this scope
ms = millis();
^
sketch_apr02a:13:23: error: ‘HIGH’ was not declared in this scope
digitalWrite(PB2, HIGH);
^
sketch_apr02a:13:27: error: ‘digitalWrite’ was not declared in this scope
digitalWrite(PB2, HIGH);
^
sketch_apr02a:14:30: error: ‘delayMicroseconds’ was not declared in this scope
delayMicroseconds(note[i]);
^
sketch_apr02a:15:23: error: ‘LOW’ was not declared in this scope
digitalWrite(PB2, LOW);
^
sketch_apr02a:20:21: error: ‘LOW’ was not declared in this scope
digitalWrite(PB2, LOW);
^
sketch_apr02a:20:24: error: ‘digitalWrite’ was not declared in this scope
digitalWrite(PB2, LOW);
^
sketch_apr02a:21:11: error: ‘delay’ was not declared in this scope
delay(10);
^
exit status 1
‘OUTPUT’ was not declared in this scope
После добавления квадратных скобок этот код выглядит если не нормальным, то по крайней мере в нем не заметно явных косяков.
Причину его зависания, скорее всего, надо искать в особенностях платы или аддона.