Advertisement
Guest User

Untitled

a guest
Nov 18th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #define highTimes 13
  2. #define bs 13
  3.  
  4. #define TX_PIN 3
  5. #define hightimesone 12
  6. #define bsone 12
  7.  
  8. float timing_High[highTimes] = {
  9.   .0000, .0011, .0017, .0032,
  10.   .0038, .0053, .0064, .0075,
  11.   .0085, .0096, .0102, .0113,
  12.   .0123
  13. };
  14.  
  15. const int bit_period[bs] = {
  16.   325, 325, 750,
  17.   325, 750, 325,
  18.   325, 325, 325,
  19.   325, 750, 750,
  20.   750
  21. };
  22.  
  23. float timing_High_One[hightimesone] = {
  24.   .0000,  .0004,  .0019,
  25.   .0026,  .0040,  .0051,
  26.   .0062,  .0073,  .0083,
  27.   .0090,  .0100,  .0111
  28. };
  29.  
  30. //first signal was different from the others, included just in case.
  31. const int bit_periodone[bsone] = {
  32.   150, 750, 325, 750,
  33.   325, 325, 325, 325,
  34.   325, 750, 750, 750
  35. }; //this is apparently different, its missing the first 300 bit period... but its happened multiple times.. idk if it will work..
  36.  
  37.  
  38.  
  39. void digital() {
  40.   int lasthur = 0;
  41.   int lowdelay = 0;
  42.   Serial.print("Testing my ringing!\n");
  43.  
  44.   for (int i = 0; i < hightimesone ; i++) {
  45.     int ushur = timing_High_One[i] * 1000000;
  46.     if (i != 0)
  47.       //Serial.println(us - last - bit_periodone[i]);
  48.       delayMicroseconds(ushur - lasthur - bit_periodone[lowdelay]);
  49.  
  50.     digitalWrite(TX_PIN, HIGH);
  51.     //Serial.println(bit_periodone[i]);
  52.     delayMicroseconds(bit_periodone[lowdelay]);
  53.     digitalWrite(TX_PIN, LOW);
  54.    
  55.     lasthur = ushur;
  56.     lowdelay++;
  57.   }
  58.   delay(10);
  59.   Ding_Dong();
  60.  
  61.  
  62. }
  63.  
  64.  
  65. void Ditch() {
  66.   int last = 0;
  67.   int lowdelay = 0;
  68.   for (int i = 0; i < highTimes ; i++) {
  69.     int us = timing_High[i] * 1000000;
  70.     if (i != 0)
  71.       delayMicroseconds(us - last - bit_period[lowdelay]);
  72.  
  73.     digitalWrite(TX_PIN, HIGH);
  74.     //Serial.println(bit_period[lowdelay]);
  75.     delayMicroseconds(bit_period[lowdelay]);
  76.     digitalWrite(TX_PIN, LOW);
  77.     last = us;
  78.     lowdelay++;
  79.   }
  80.   delay(10);
  81.  
  82. }
  83. void testing() {
  84.   for (int i = 0; i < 1; i++) {
  85.     digital();
  86.   }
  87. }
  88. void Ding_Dong() {
  89.  
  90.   for (int i = 0; i < 40; i++) {
  91.     Ditch();
  92.   }
  93. }
  94.  
  95. void setup() {
  96.   Serial.begin(115200);
  97.   pinMode(TX_PIN, OUTPUT);
  98.  
  99. }
  100.  
  101. void loop() {
  102.   delay(8000);
  103.   testing();
  104.   //Ding_Dong();
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement