Advertisement
Tigerigel

Zahlenausgabe aus wenigen Bestandteilen

Nov 22nd, 2018
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.76 KB | None | 0 0
  1. Den Code für das Zusammenbauen der Zahlenausgabe habe ich fertig. Ich habe als Zahl Short verwendet, geht dann bis maximal 32767, wir brauchen hier ja nur Zahlen bis 255.
  2.  
  3. Folgende MP3-Dateien muss man nur noch für die Zahlen anlegen:
  4. 0001.   Eins
  5. 0002.   Zwei
  6. 0003.   Drei
  7. 0004.   Vier
  8. 0005.   Fünf
  9. 0006.   Sechs
  10. 0007.   Sieben
  11. 0008.   Acht
  12. 0009.   Neun
  13. 0010.   Zehn
  14. 0011.   Elf
  15. 0012.   Zwölf
  16. 0013.   Ein
  17. 0014.   Virr    (von vierzig)
  18. 0015.   Zwann   (von zwanzig)
  19. 0016.   Sech    (von sechzig)
  20. 0017.   Sibb    (von siebzig)
  21. 0018.   Zigg    (von zwanzig)
  22. 0019.   Sigg    (von dreißig)
  23. 0020.   Und
  24. 0021.   Hundert
  25. 0022.   Tausend
  26. 0023.   Null
  27.  
  28. Hier der Code-Teil:
  29.  
  30. // playNumber - Zahl von 0 bis 32767 (Short) ausgeben
  31. //
  32. void playNumber(short mp3Number, bool mp3Folder) {
  33.     short s123;
  34.     short s456;
  35.    
  36.     if (mp3Number > 32767 || mp3Number < 0) {
  37.         return;
  38.     }
  39.  
  40.     s123 = mp3Number / 1000;
  41.     s456 = mp3Number - (s123 * 1000);
  42.  
  43.     if (s123 > 0) {
  44.         playNumber3(s123, mp3Folder, true);
  45.         playMp3File(22, mp3Folder);
  46.     }
  47.     if (s456 > 0) {
  48.         playNumber3(s456, mp3Folder, false);
  49.     }
  50.     if (mp3Number == 0) {
  51.         playMp3File(23, mp3Folder);
  52.     }
  53. }
  54.  
  55. // playNumber3 - dreistellige Zahl ausgeben
  56. //
  57. void playNumber3(short mp3Number, bool mp3Folder, bool mp3Tausend) {
  58.     short s1;
  59.     short s2;
  60.     short s3;
  61.     short rest;
  62.  
  63.     s1 = mp3Number / 100;
  64.     rest = mp3Number - (s1 * 100);
  65.     s2 = rest / 10;
  66.     s3 = rest - (s2 * 10);
  67.  
  68.     if (s1 > 0) {
  69.         if (s1 == 1) {
  70.             playMp3File(13, mp3Folder);
  71.         }
  72.         else {
  73.             playMp3File(s1, mp3Folder);
  74.         }
  75.         playMp3File(21, mp3Folder);
  76.     }
  77.     if (s2 == 0) {
  78.         if (s3 == 1 && mp3Tausend == true) {
  79.             playMp3File(13, mp3Folder);
  80.         }
  81.         else {
  82.             playMp3File(s3, mp3Folder);
  83.         }
  84.     }
  85.     else if (s2 > 1) {
  86.         if (s3 == 1) {
  87.             playMp3File(13, mp3Folder);
  88.         }
  89.         else {
  90.             playMp3File(s3, mp3Folder);
  91.         }
  92.         if (s3 > 0) {
  93.             playMp3File(20, mp3Folder);
  94.         }
  95.         switch (s2) {
  96.         case 2:
  97.             playMp3File(15, mp3Folder);
  98.             break;
  99.         case 4:
  100.             playMp3File(14, mp3Folder);
  101.             break;
  102.         case 6:
  103.             playMp3File(16, mp3Folder);
  104.             break;
  105.         case 7:
  106.             playMp3File(17, mp3Folder);
  107.             break;
  108.         default:
  109.             playMp3File(s2, mp3Folder);
  110.         }
  111.         if (s2 == 3) {
  112.             playMp3File(19, mp3Folder);
  113.         }
  114.         else {
  115.             playMp3File(18, mp3Folder);
  116.         }
  117.     }
  118.     else {
  119.         switch (s3) {
  120.         case 0:
  121.             playMp3File(10, mp3Folder);
  122.             break;
  123.         case 1:
  124.             playMp3File(11, mp3Folder);
  125.             break;
  126.         case 2:
  127.             playMp3File(12, mp3Folder);
  128.             break;
  129.         default:
  130.             switch (s3) {
  131.             case 4:
  132.                 playMp3File(14, mp3Folder);
  133.                 break;
  134.             case 6:
  135.                 playMp3File(16, mp3Folder);
  136.                 break;
  137.             case 7:
  138.                 playMp3File(17, mp3Folder);
  139.                 break;
  140.             default:
  141.                 playMp3File(s3, mp3Folder);
  142.             }
  143.             playMp3File(10, mp3Folder);
  144.         }
  145.     }
  146. }
  147.  
  148. // playMp3File - Mp3 ausgeben
  149. //
  150. void playMp3File(short mp3Number, bool mp3Folder) {
  151.     if (mp3Number > 0) {
  152.         if (mp3Folder == false) {
  153.             mp3.playMp3FolderTrack(mp3Number);
  154.         }
  155.         else {
  156.             mp3.playAdvertisement(mp3Number);
  157.         }
  158.         // Serial.print(mp3Number);
  159.         // Serial.println(F("  =  Nummer"));
  160.         delay(300);
  161.         do {
  162.             delay(20);
  163.         } while (isPlaying());
  164.     }
  165. }
  166.  
  167. // Test Function
  168. //
  169. void testCard() {
  170.     Serial.println(F("Testkarte aufgelegt"));
  171.    
  172.     mp3.pause();
  173.  
  174.     playNumber(12345, false);
  175.     delay(1000);
  176.  
  177.     playNumber(5, false);
  178.     delay(1000);
  179.  
  180.     playNumber(777, false);
  181.     delay(1000);
  182.  
  183.     playNumber(255, false);
  184.     delay(1000);
  185.  
  186.     playNumber(2011, false);
  187.     delay(1000);
  188.  
  189.     playNumber(17017, false);
  190.     delay(1000);
  191.  
  192.     playNumber(1001, false);
  193.     delay(1000);
  194.  
  195.     playNumber(32767, false);
  196.     delay(1000);
  197.  
  198.     playNumber(32768, false);
  199.     delay(1000);
  200.  
  201.     playNumber(17000, false);
  202.     delay(1000);
  203.  
  204.     playNumber(300, false);
  205.     delay(1000);
  206.  
  207.     playNumber(60, false);
  208.     delay(1000);
  209.  
  210.     playNumber(-5, false);
  211.     delay(1000);
  212.  
  213.     mp3.pause();
  214.  
  215.     Serial.println(F("Test Ende"));
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement