adding Synchonizer prior-art code from KHM 2010 / Martin Nawrath, Kunsthochschule fuer Medien Koeln, Academy of Media Arts Cologne
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user