Fri Aug 22, 2014 12:19 pm
Fri Aug 22, 2014 5:19 pm
Wed Aug 27, 2014 10:27 am
int shotcode[] = {
1,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,1,1,1,1}; // Code to send Shutter release command B4B8F
int shotcode_delayed[] = {
1,1,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,1,1,1}; // // Code to send 2 X delay Shutter release command ECB8F
void shot(int bits[]){
gb.sound.playTick();
for (int i=1; i <= 3; i++) // Send Command 3 times as per Sony Specs
{
header(); // Send the Start header
for (int i=0; i <= 19; i++) // Loop to send the bits
{
if(bits[i] == 1) // Is Data_is_One to be sent ?
{
Data_is_One(); // Yes, send a Data_is_One bit
}
else // No, Data_is_Zero to be sent
{
Data_is_Zero(); // Send a Data_is_Zero bit
}
}
delay(11); // Delay Padding to give approx 45mS between command starts
}
}
// Routine to give the 40kHz burst signal
void burst() // 40KHz burst
{
digitalWrite(IR_LED, HIGH); // sets the pin on
delayMicroseconds(10); // pauses for 13 microseconds (fudged to 10uS Delay)
digitalWrite(IR_LED, LOW); // sets the pin off
delayMicroseconds(8); // pauses for 12 microseconds (fudged to 8uS Delay)
}
// Routine to give a quiet period of data
void quiet() // Quiet burst
{
digitalWrite(IR_LED, LOW); // sets the pin off
delayMicroseconds(10); // pauses for 13 microseconds (fudged to 10uS Delay)
digitalWrite(IR_LED, LOW); // sets the pin off
delayMicroseconds(8); // pauses for 12 microseconds (fudged to 8uS Delay)
}
// Routine to send header data burst
// This allows the IR reciever to set its AGC (Gain)
// Header Burst Timing is 96 * 0.025uS = 2.4mS
// Quiet Timing is 24 * 0.025uS = 600uS
void header()
{
for (int i=1; i <= 96; i++){
burst(); // 40kHz burst
}
for (int i=1; i <= 24; i++){
quiet(); // No 40 kHz
}
}
// Routine to send one data burst
// Burst Timing is 48 * 0.025uS = 1.2mS
// Quiet Timing is 24 * 0.025uS = 600uS
void Data_is_One()
{
for (int i=1; i <= 48; i++){
burst(); // 40kHz burst
}
for (int i=1; i <= 24; i++){
quiet(); // No 40 kHz
}
}
// Routine to send zero data burst
// Burst Timing is 24 * 0.025uS = 600uS
// Quiet Timing is 24 * 0.025uS = 600uS
void Data_is_Zero()
{
for (int i=1; i <= 24; i++){
burst(); // 40 kHz burst
}
for (int i=1; i <= 24; i++){
quiet(); // No 40 kHz
}
}
Wed Aug 27, 2014 10:53 am
Wed Aug 27, 2014 6:09 pm
Wed Aug 27, 2014 6:22 pm
Fri Aug 29, 2014 12:41 pm
Fri Aug 29, 2014 12:51 pm
maesoser wrote:It works! I change that setting but it throws some errors related with sound creation methods so I decided to make an alternative Gamebuino library without the sound part.