adding Synchonizer prior-art code from KHM 2010 / Martin Nawrath, Kunsthochschule fuer Medien Koeln, Academy of Media Arts Cologne

This commit is contained in:
foley@ru.is
2013-09-10 22:35:46 +00:00
parent 1e6f137a76
commit f66c24d38a
2 changed files with 791 additions and 0 deletions

View File

@@ -0,0 +1,368 @@
/* DVD IR Synchronizer
*
* connect a IR LED to: Anode pin9, Cathode pin8
* KHM 2010 / Martin Nawrath
* Kunsthochschule fuer Medien Koeln
* Academy of Media Arts Cologne
*/
#include <MsTimer2.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
int pinIR_OUT =9;
int pinGND =8;
int pinLED =13;
int bb;
int tics;
int secs;
int f_sec;
int f_sync;
int playtime= 26*60+50; // set here ypur DVD title playtime
void setup() {
pinMode(pinGND,OUTPUT);
Serial.begin(115200);
Serial.println("Panasonic DVD S54 Synchronizer");
Serial.print("Playtime: ");
secs=playtime;
Serial.print("sec:");
Serial.print(secs);
Serial.print(" / mm:ss ");
Serial.print(secs/60);
Serial.print(":");
Serial.print(secs % 60);
Serial.println("");
TCCR1A = 0;
cbi(TCCR1A,COM1A0); // timer1 counter control
sbi(TCCR1A,COM1A1); // clear on compare match
cbi(TCCR1A,WGM10); // waveform generation mode 14 TOP=ICR1
sbi(TCCR1A,WGM11);
sbi(TCCR1B,WGM12);
sbi(TCCR1B,WGM13);
sbi(TCCR1B,CS10); // timer 1 clock select
cbi(TCCR1B,CS11); // prescaler=1
cbi(TCCR1B,CS12);
int f_carrier = 37 ; // choose right IR carrier frequency
ICR1 = 16000 / f_carrier ;
OCR1A = 200 ; // Leistung der Sendediode 0..200
pinMode(pinIR_OUT,OUTPUT);
pinMode(pinLED,OUTPUT);
MsTimer2::set(10, ms10); // 10ms period
MsTimer2::start();
Serial.println("play");
send_play();
delay(7000);
secs=playtime;
}
/********************************************************************/
void loop() {
if(f_sec){
f_sec=0;
Serial.print("sec:");
Serial.print(secs);
Serial.print(" / mm:ss ");
Serial.print(secs/60);
Serial.print(":");
Serial.print(secs % 60);
Serial.println("");
if (secs >= playtime){
f_sync=1;
Serial.println("Sync");
Serial.println("pause");
send_pause();
delay(2000);
Serial.println("rev");
send_rev();
delay(2000);
Serial.println("play");
send_play();
secs=0;
f_sync=0;
}
}
}
/********************************************************************/
void ms10() {
tics++;
if (tics >= 100) {
tics=0;
secs++;
//Serial.println("second");
f_sec=1;
PORTB ^= 32;
}
if (f_sync==1)
if ( tics % 10 == 0) PORTB ^= 32;
}
/********************************************************************/
void send_stop() {
sbi(DDRB,1); delayMicroseconds(3472); cbi(DDRB,1); delayMicroseconds(1720); // 1
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(436); // 3
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(1292); // 5
sbi(DDRB,1); delayMicroseconds(456); cbi(DDRB,1); delayMicroseconds(420); // 7
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(432); // 9
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(436); // 11
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(412); // 13
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(432); // 15
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(440); // 17
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(420); // 19
sbi(DDRB,1); delayMicroseconds(456); cbi(DDRB,1); delayMicroseconds(420); // 21
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(436); // 23
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(436); // 25
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(412); // 27
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(1316); // 29
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(416); // 31
sbi(DDRB,1); delayMicroseconds(460); cbi(DDRB,1); delayMicroseconds(412); // 33
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(436); // 35
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(412); // 37
sbi(DDRB,1); delayMicroseconds(376); cbi(DDRB,1); delayMicroseconds(24); // 39
sbi(DDRB,1); delayMicroseconds(48); cbi(DDRB,1); delayMicroseconds(432); // 41
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(444); // 43
sbi(DDRB,1); delayMicroseconds(432); cbi(DDRB,1); delayMicroseconds(1292); // 45
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(1308); // 47
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(412); // 49
sbi(DDRB,1); delayMicroseconds(464); cbi(DDRB,1); delayMicroseconds(1284); // 51
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(440); // 53
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(412); // 55
sbi(DDRB,1); delayMicroseconds(464); cbi(DDRB,1); delayMicroseconds(412); // 57
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(432); // 59
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(412); // 61
sbi(DDRB,1); delayMicroseconds(456); cbi(DDRB,1); delayMicroseconds(420); // 63
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(440); // 65
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(420); // 67
sbi(DDRB,1); delayMicroseconds(456); cbi(DDRB,1); delayMicroseconds(412); // 69
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(432); // 71
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(436); // 73
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(412); // 75
sbi(DDRB,1); delayMicroseconds(460); cbi(DDRB,1); delayMicroseconds(416); // 77
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(440); // 79
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(420); // 81
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(432); // 83
sbi(DDRB,1); delayMicroseconds(444); cbi(DDRB,1); delayMicroseconds(436); // 85
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(412); // 87
sbi(DDRB,1); delayMicroseconds(464); cbi(DDRB,1); delayMicroseconds(412); // 89
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(440); // 91
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(1288); // 93
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(1308); // 95
sbi(DDRB,1); delayMicroseconds(440); cbi(DDRB,1); delayMicroseconds(436); // 97
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1); delayMicroseconds(1292); // 99
sbi(DDRB,1); delayMicroseconds(436); cbi(DDRB,1);
}
/********************************************************************/
void send_play() {
sbi(DDRB,1); delayMicroseconds( 3476 ); cbi(DDRB,1); delayMicroseconds( 1732 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 1300 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 448 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 448 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 424 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 444 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 424 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 1296 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 444 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 424 );
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 424 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 1292 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 1312 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 1300 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 424 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 448 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 448 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 420 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 444 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 444 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 1312 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 420 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 1296 );
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 412 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 436 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 448 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 1300 );
sbi(DDRB,1); delayMicroseconds( 436 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 1292 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 1288 );
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 1292 );
sbi(DDRB,1); delayMicroseconds( 444 ); cbi(DDRB,1); delayMicroseconds( 432 );
sbi(DDRB,1); delayMicroseconds( 448 ); cbi(DDRB,1); delayMicroseconds( 1288 );
sbi(DDRB,1); delayMicroseconds( 432 ); cbi(DDRB,1); delayMicroseconds( 0 );
}
/********************************************************************/
void send_pause() {
ICR1 = 16000 /37; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(3500 ); cbi(DDRB,1); delayMicroseconds(1708 ); // ix: 1 ton:3500 toff:1708
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 3 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1264 ); // ix: 5 ton: 456 toff:1264
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 7 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 384 ); // ix: 9 ton: 464 toff: 384
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 11 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 13 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 388 ); // ix: 15 ton: 456 toff: 388
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 17 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 19 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 21 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 23 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 25 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 27 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds(1308 ); // ix: 29 ton: 420 toff:1308
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 31 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 33 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 35 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 37 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 388 ); // ix: 39 ton: 460 toff: 388
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 41 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1304 ); // ix: 43 ton: 456 toff:1304
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds(1304 ); // ix: 45 ton: 424 toff:1304
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 47 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1272 ); // ix: 49 ton: 456 toff:1272
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 51 ton: 456 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 53 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 55 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 57 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 59 ton: 456 toff: 424
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 61 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 63 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 65 ton: 456 toff: 424
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 67 ton: 424 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 69 ton: 464 toff:1300
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds(1268 ); // ix: 71 ton: 460 toff:1268
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 73 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 75 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 77 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 79 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 81 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 83 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 85 ton: 460 toff:1300
sbi(DDRB,1); delayMicroseconds( 428 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 87 ton: 428 toff:1300
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 89 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1272 ); // ix: 91 ton: 456 toff:1272
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 93 ton: 456 toff:1300
sbi(DDRB,1); delayMicroseconds( 428 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 95 ton: 428 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 97 ton: 464 toff:1300
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1);
}
/********************************************************************/
void send_rev() {
ICR1 = 16000 /37; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(3500 ); cbi(DDRB,1); delayMicroseconds(1708 ); // ix: 1 ton:3500 toff:1708
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 3 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1268 ); // ix: 5 ton: 456 toff:1268
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 7 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 9 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 11 ton: 420 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 13 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 15 ton: 456 toff: 424
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 17 ton: 424 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 19 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 21 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 388 ); // ix: 23 ton: 460 toff: 388
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 25 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 27 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 29 ton: 420 toff:1300
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 31 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 384 ); // ix: 33 ton: 464 toff: 384
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 35 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 37 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 39 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 41 ton: 420 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 43 ton: 464 toff:1300
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds(1264 ); // ix: 45 ton: 464 toff:1264
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 47 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1268 ); // ix: 49 ton: 456 toff:1268
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 51 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 53 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 55 ton: 424 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 57 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 59 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 420 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 61 ton: 420 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 63 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 65 ton: 464 toff: 420
sbi(DDRB,1); delayMicroseconds( 428 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 67 ton: 428 toff:1300
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 428 ); // ix: 69 ton: 456 toff: 428
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds( 392 ); // ix: 71 ton: 456 toff: 392
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1304 ); // ix: 73 ton: 456 toff:1304
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 75 ton: 460 toff: 420
sbi(DDRB,1); delayMicroseconds( 428 ); cbi(DDRB,1); delayMicroseconds( 420 ); // ix: 77 ton: 428 toff: 420
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1308 ); // ix: 79 ton: 456 toff:1308
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 384 ); // ix: 81 ton: 460 toff: 384
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds(1304 ); // ix: 83 ton: 460 toff:1304
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 384 ); // ix: 85 ton: 460 toff: 384
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds( 424 ); // ix: 87 ton: 460 toff: 424
sbi(DDRB,1); delayMicroseconds( 460 ); cbi(DDRB,1); delayMicroseconds(1304 ); // ix: 89 ton: 460 toff:1304
sbi(DDRB,1); delayMicroseconds( 424 ); cbi(DDRB,1); delayMicroseconds(1300 ); // ix: 91 ton: 424 toff:1300
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1); delayMicroseconds(1264 ); // ix: 93 ton: 464 toff:1264
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1308 ); // ix: 95 ton: 456 toff:1308
sbi(DDRB,1); delayMicroseconds( 456 ); cbi(DDRB,1); delayMicroseconds(1264 ); // ix: 97 ton: 456 toff:1264
sbi(DDRB,1); delayMicroseconds( 464 ); cbi(DDRB,1);
}

View File

@@ -0,0 +1,423 @@
/* DVD IR Synchronizer
*
* connect a IR LED to: Anode pin9, Cathode pin8
* KHM 2010 / Martin Nawrath
* Kunsthochschule fuer Medien Koeln
* Academy of Media Arts Cologne
*/
#include <MsTimer2.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
int pinIR_OUT =9;
int pinGND =8;
int pinLED =13;
int bb;
int tics;
int secs;
int f_sec;
int f_sync;
int playtime= 40*60+30; // set here ypur DVD title playtime
void setup() {
pinMode(pinGND,OUTPUT);
Serial.begin(115200);
Serial.println("DVD Synchronizer");
Serial.print("Playtime: ");
secs=playtime;
Serial.print("sec:");
Serial.print(secs);
Serial.print(" / mm:ss ");
Serial.print(secs/60);
Serial.print(":");
Serial.print(secs % 60);
Serial.println("");
TCCR1A = 0;
cbi(TCCR1A,COM1A0); // timer1 counter control
sbi(TCCR1A,COM1A1); // clear on compare match
cbi(TCCR1A,WGM10); // waveform generation mode 14 TOP=ICR1
sbi(TCCR1A,WGM11);
sbi(TCCR1B,WGM12);
sbi(TCCR1B,WGM13);
sbi(TCCR1B,CS10); // timer 1 clock select
cbi(TCCR1B,CS11); // prescaler=1
cbi(TCCR1B,CS12);
int f_carrier = 37 ; // choose right IR carrier frequency
ICR1 = 16000 / f_carrier ;
OCR1A = 200 ; // Leistung der Sendediode 0..200
pinMode(pinIR_OUT,OUTPUT);
pinMode(pinLED,OUTPUT);
MsTimer2::set(10, ms10); // 10ms period
MsTimer2::start();
Serial.println("play");
send_play();
delay(7000);
secs=playtime;
}
/********************************************************************/
void loop() {
if(f_sec){
f_sec=0;
Serial.print("sec:");
Serial.print(secs);
Serial.print(" / mm:ss ");
Serial.print(secs/60);
Serial.print(":");
Serial.print(secs % 60);
Serial.println("");
if (secs >= playtime){
f_sync=1;
Serial.println("Sync");
Serial.println("pause");
send_pause();
delay(2000);
Serial.println("rev");
send_rev();
delay(2000);
Serial.println("play");
send_play();
secs=0;
f_sync=0;
}
}
}
/********************************************************************/
void ms10() {
tics++;
if (tics >= 100) {
tics=0;
secs++;
f_sec=1;
PORTB ^= 32;
}
if (f_sync==1)
if ( tics % 10 == 0) PORTB ^= 32;
}
/********************************************************************/
void send_stop() {
ICR1 = 16000 /40; // ICR1 = 16000 /40; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(2400 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 1 ton:2400 toff: 572
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 3 ton: 648 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 5 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 7 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds(1236 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 9 ton:1236 toff: 564
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 11 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 13 ton:1228 toff: 576
sbi(DDRB,1); delayMicroseconds( 636 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 15 ton: 636 toff: 576
sbi(DDRB,1); delayMicroseconds( 636 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 17 ton: 636 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 19 ton:1228 toff: 576
sbi(DDRB,1); delayMicroseconds( 600 ); cbi(DDRB,1); delayMicroseconds( 612 ); // ix: 21 ton: 600 toff: 612
sbi(DDRB,1); delayMicroseconds(1188 ); cbi(DDRB,1); delayMicroseconds( 612 ); // ix: 23 ton:1188 toff: 612
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 600 ); // ix: 25 ton:1192 toff: 600
sbi(DDRB,1); delayMicroseconds(1200 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 27 ton:1200 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 29 ton: 608 toff: 564
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 31 ton: 648 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 33 ton:1228 toff: 564
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 35 ton: 648 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 37 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 600 ); // ix: 39 ton:1228 toff: 600
sbi(DDRB,1); delayMicroseconds( 612 ); cbi(DDRB,1); delayMicroseconds(13252 ); // ix: 41 ton: 612 toff:13252
sbi(DDRB,1); delayMicroseconds(2400 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 43 ton:2400 toff: 608
sbi(DDRB,1); delayMicroseconds( 612 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 45 ton: 612 toff: 564
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 47 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 49 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds(1196 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 51 ton:1196 toff: 604
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 53 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 612 ); // ix: 55 ton:1192 toff: 612
sbi(DDRB,1); delayMicroseconds( 600 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 57 ton: 600 toff: 572
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 59 ton: 648 toff: 564
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 61 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 63 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 65 ton:1228 toff: 576
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 67 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 69 ton:1228 toff: 564
sbi(DDRB,1); delayMicroseconds( 612 ); cbi(DDRB,1); delayMicroseconds( 600 ); // ix: 71 ton: 612 toff: 600
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 73 ton: 608 toff: 576
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 75 ton:1228 toff: 564
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 77 ton: 648 toff: 572
sbi(DDRB,1); delayMicroseconds( 600 ); cbi(DDRB,1); delayMicroseconds( 612 ); // ix: 79 ton: 600 toff: 612
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 81 ton:1228 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds(13256 ); // ix: 83 ton: 608 toff:13256
sbi(DDRB,1); delayMicroseconds(2436 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 85 ton:2436 toff: 572
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 87 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 89 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 91 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 93 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 95 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 97 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 99 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:101 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:103 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:105 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:107 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix:109 ton:1228 toff: 576
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix:111 ton:1228 toff: 564
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix:113 ton: 648 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:115 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 600 ); // ix:117 ton:1232 toff: 600
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix:119 ton: 608 toff: 576
sbi(DDRB,1); delayMicroseconds( 636 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:121 ton: 636 toff: 572
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:123 ton:1232 toff: 572
sbi(DDRB,1); delayMicroseconds( 600 ); cbi(DDRB,1);
}
/********************************************************************/
void send_play() {
ICR1 = 16000 /40; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(2400 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 1 ton:2400 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 3 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 5 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 7 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 9 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 11 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 13 ton:1228 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 15 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 17 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 19 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 21 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 23 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 25 ton:1192 toff: 604
sbi(DDRB,1); delayMicroseconds(1236 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 27 ton:1236 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 29 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 31 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 33 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 35 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 37 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 39 ton:1228 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds(13256 ); // ix: 41 ton: 608 toff:13256
sbi(DDRB,1); delayMicroseconds(2400 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 43 ton:2400 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 45 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 47 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 49 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 51 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 53 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 55 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 57 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 59 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 61 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 63 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 65 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 67 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 69 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 71 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 73 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 75 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 77 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 79 ton: 608 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 81 ton:1192 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds(13252 ); // ix: 83 ton: 608 toff:13252
sbi(DDRB,1); delayMicroseconds(2440 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 85 ton:2440 toff: 572
sbi(DDRB,1); delayMicroseconds( 600 ); cbi(DDRB,1); delayMicroseconds( 576 ); // ix: 87 ton: 600 toff: 576
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 89 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 91 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 93 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 95 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 97 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 99 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:101 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:103 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:105 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:107 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:109 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:111 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:113 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix:115 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds(1196 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix:117 ton:1196 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:119 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:121 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:123 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1);
}
/********************************************************************/
void send_pause() {
ICR1 = 16000 /40; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(2404 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 1 ton:2404 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 3 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 5 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 7 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 9 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 11 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 13 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 15 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 17 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 19 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 21 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 23 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 25 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds(1236 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 27 ton:1236 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 29 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 31 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds(1236 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 33 ton:1236 toff: 564
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 35 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 37 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 39 ton:1232 toff: 564
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds(12664 ); // ix: 41 ton: 608 toff:12664
sbi(DDRB,1); delayMicroseconds(2408 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 43 ton:2408 toff: 604
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 45 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 47 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 49 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 51 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 53 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 55 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 57 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 59 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 61 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 63 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 65 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 67 ton:1228 toff: 604
sbi(DDRB,1); delayMicroseconds(1196 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 69 ton:1196 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 71 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 73 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 75 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 77 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 79 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 81 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds(12628 ); // ix: 83 ton: 644 toff:12628
sbi(DDRB,1); delayMicroseconds(2408 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 85 ton:2408 toff: 604
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 87 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 89 ton: 608 toff: 564
sbi(DDRB,1); delayMicroseconds( 648 ); cbi(DDRB,1); delayMicroseconds( 564 ); // ix: 91 ton: 648 toff: 564
sbi(DDRB,1); delayMicroseconds(1236 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 93 ton:1236 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 95 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 97 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 99 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix:101 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix:103 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:105 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:107 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix:109 ton:1228 toff: 604
sbi(DDRB,1); delayMicroseconds(1196 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix:111 ton:1196 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:113 ton: 608 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:115 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:117 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix:119 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:121 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:123 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1);
}
/********************************************************************/
void send_rev() {
ICR1 = 16000 /40; // IR carrier frequency
sbi(DDRB,1); delayMicroseconds(2400 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 1 ton:2400 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 3 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 5 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 7 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 9 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 11 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 13 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 15 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 17 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 19 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 21 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 23 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 25 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds(1232 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 27 ton:1232 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 29 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 31 ton: 608 toff: 608
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 33 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 35 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 37 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 39 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds(13808 ); // ix: 41 ton: 644 toff:13808
sbi(DDRB,1); delayMicroseconds(2436 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 43 ton:2436 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 45 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 47 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 49 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 51 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 53 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 55 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 57 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 59 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 61 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 63 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 65 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 67 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 69 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 71 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 73 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 75 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 77 ton: 608 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 79 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 81 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds(13844 ); // ix: 83 ton: 644 toff:13844
sbi(DDRB,1); delayMicroseconds(2436 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 85 ton:2436 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 87 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 89 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix: 91 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 604 ); // ix: 93 ton: 608 toff: 604
sbi(DDRB,1); delayMicroseconds(1188 ); cbi(DDRB,1); delayMicroseconds( 612 ); // ix: 95 ton:1188 toff: 612
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix: 97 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix: 99 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:101 ton: 644 toff: 568
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:103 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds( 640 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:105 ton: 640 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:107 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:109 ton:1228 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:111 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 608 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix:113 ton: 608 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:115 ton: 604 toff: 572
sbi(DDRB,1); delayMicroseconds(1228 ); cbi(DDRB,1); delayMicroseconds( 568 ); // ix:117 ton:1228 toff: 568
sbi(DDRB,1); delayMicroseconds( 644 ); cbi(DDRB,1); delayMicroseconds( 572 ); // ix:119 ton: 644 toff: 572
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix:121 ton: 604 toff: 608
sbi(DDRB,1); delayMicroseconds(1192 ); cbi(DDRB,1); delayMicroseconds( 608 ); // ix:123 ton:1192 toff: 608
sbi(DDRB,1); delayMicroseconds( 604 ); cbi(DDRB,1);
}