こっちのガンダムっぽいUNOでは動いたけど、
https://www.aliexpress.com/item/1PCS-UNO-R3-UNO-board-for-Arduino-Compatible-UNO-MEGA328P-CH340-NO-USB-CABLE/32674142713.html
こっちでは動かない
https://www.aliexpress.com/item/high-quality-One-set-UNO-R3-CH340G-MEGA328P-for-Arduino-UNO-R3-NO-USB-CABLE/32697443734.html

なぜ?問題としては、AC_TOGGLE_SIGNALの配列の41228が入ってるからおかしいっぽいけどいまいち理由がわからない。

#define IR_EMIT_PIN 12
long AC_TOGGLE_SIGNAL[] = {8972, 4520, 540, 588, 532, 172, 540, 1712, 532, 596, 532, 1712, 536, 592, 540, 41228, 8944, 2284, 540, };
void setup() {
pinMode(12, OUTPUT) ;
Serial.begin(115200);
}
void loop(){
int duration;
unsigned long started_at;
Serial.print("S");
int signalLength = sizeof(AC_TOGGLE_SIGNAL) / sizeof(AC_TOGGLE_SIGNAL[0]);
for (int i = 0; i < signalLength; i++) {
duration = AC_TOGGLE_SIGNAL[i];
started_at = micros();
Serial.println(signalLength);
Serial.println(i);
while (micros() - started_at < duration) {
// i is even: HIGH. i is odd: LOW
// keep 1/3 duty, 8 usec.
digitalWrite(IR_EMIT_PIN, 1 - (i % 2));
delayMicroseconds(8);
// off remaining 2/3, 16 usec.
digitalWrite(IR_EMIT_PIN, 0);
delayMicroseconds(15);
//なぜかここで無限ループになる
}
}
Serial.println("F");
digitalWrite(IR_EMIT_PIN, 0);
delay(500);
}