So I'm trying to do this ... if anyone has a clue what I'm doing wrong ... I would be forever great full ..
int ledPin = 13;
int incomingInt = 0;
int OnesData = 0;
int TensData = 0;
int HunsData = 0;
int ThosData = 0;
int TThoData = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TThoData = Serial.read();
TThoData = TThoData * 10000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
ThosData = Serial.read();
ThosData = ThosData * 1000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
HunsData = Serial.read();
HunsData = HunsData * 100;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TensData = Serial.read();
TensData = TensData * 10;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
OnesData = Serial.read();
incomingInt = OnesData + TensData + HunsData + ThosData + TThoData;
Serial.println(incomingInt);
int OnTimes[incomingInt+1];
int OffTimes[incomingInt+1];
for (int count=0; count <= incomingInt; count++)
{
TThoData = 0;
ThosData = 0;
HunsData = 0;
TensData = 0;
OnesData = 0;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TThoData = Serial.read();
TThoData = TThoData * 10000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
ThosData = Serial.read();
ThosData = ThosData * 1000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
HunsData = Serial.read();
HunsData = HunsData * 100;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TensData = Serial.read();
TensData = TensData * 10;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
OnesData = Serial.read();
OnTimes[count] = OnesData + TensData + HunsData + ThosData + TThoData;
TThoData = 0;
ThosData = 0;
HunsData = 0;
TensData = 0;
OnesData = 0;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TThoData = Serial.read();
TThoData = TThoData * 10000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
ThosData = Serial.read();
ThosData = ThosData * 1000;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
HunsData = Serial.read();
HunsData = HunsData * 100;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
TensData = Serial.read();
TensData = TensData * 10;
while (Serial.available() <= 0)
{
// Wait For A Pair Burst
}
OnesData = Serial.read();
OffTimes[count] = OnesData + TensData + HunsData + ThosData + TThoData;
}
// Arrays are now full of On/Off Times
for (int count1=0; count1 <= incomingInt; count1++)
{
//Serial.println(OnTimes[count1]);
//Serial.println(OffTimes[count1]);
digitalWrite(ledPin, HIGH);
delayMicroseconds(OnTimes[count1]);
digitalWrite(ledPin, LOW);
delayMicroseconds(OffTimes[count1]);
}
}
I have a VB Program that sends the Timing to the Arduino ... Here is an example of what I send
Dim t(5) As Byte
t(0) = 0
t(1) = 0
t(2) = 0
t(3) = 1
t(4) = 7
SP.Write(t, 0, 5) 'Number Of Burst Pairs
t(0) = 0
t(1) = 8
t(2) = 9
t(3) = 1
t(4) = 8
SP.Write(t, 0, 5) 'Lead In On Time
t(0) = 0
t(1) = 4
t(2) = 4
t(3) = 9
t(4) = 8
SP.Write(t, 0, 5) 'Lead In Off Time
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 1 On Time
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5) 'Pair 1 Off Time
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 2
t(0) = 0
t(1) = 4
t(2) = 4
t(3) = 9
t(4) = 8
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 3
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 4
t(0) = 0
t(1) = 4
t(2) = 4
t(3) = 9
t(4) = 8
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 5
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 6
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 7
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 8
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 9
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 10
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 11
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 12
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 13
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 15
t(0) = 0
t(1) = 4
t(2) = 4
t(3) = 9
t(4) = 8
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 16
t(0) = 0
t(1) = 4
t(2) = 4
t(3) = 9
t(4) = 8
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 17
t(0) = 0
t(1) = 2
t(2) = 2
t(3) = 3
t(4) = 6
SP.Write(t, 0, 5)
t(0) = 0
t(1) = 0
t(2) = 4
t(3) = 6
t(4) = 8
SP.Write(t, 0, 5) 'Pair 18
t(0) = 0
t(1) = 2 '2
t(2) = 2 '2
t(3) = 3 '3
t(4) = 6 '6
SP.Write(t, 0, 5)
I downloaded this HEX code from remote central
0000 006D 0012 0002 0157 00AD 0012 0056 0012 00AD 0012 0056 0012 00AD 0012 0056 0012 0056 0012 0056 0012 0056 0012 0056 0012 0056 0012 0056 0012 0056 0012 0056 0012 00AD 0012 00AD 0012 0056 0012 04F5 0157 0056 0012 0D2F
From there I converted it to timing for the arduino ... If anyone knows that are too ...
I ignored the 1st word ... the 2nd word is the clock ... convert it to decimal in this case 109 ... then do this 1000000 / (109 * .241246) ... which gave me 38 KHZ ... then do this 1/38028 * 1000000 which tells me that 1 cycle takes 26 microseconds ...
help PLEASE