home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / basic.exe / CHIP / Programme.Bas / App-Board / tx.bas < prev   
Encoding:
BASIC Source File  |  1997-06-16  |  2.7 KB  |  133 lines

  1. '********************************************************************
  2. '
  3. ' C-Control/BASIC       TX.BAS
  4. '
  5. ' Systemvoraussetzungen:
  6. '
  7. ' - Application Board mit angeschlossenem Telemetrie-Sender
  8. '   und Tastatur
  9. '
  10. ' Schwerpunkt:
  11. '
  12. ' - Funkuebertragung von Daten (siehe auch RX.BAS)
  13. '********************************************************************
  14.  
  15. define value word
  16. define neg byte
  17.  
  18. define key_nr byte
  19. define compare byte
  20. define key_ascii byte
  21.  
  22. define keyboard ad[8]
  23.  
  24.  
  25. ' die Reihenfolge der Tasten auf dem Keyboard
  26. define KEY_ASTERIX 0
  27. define KEY_7       1
  28. define KEY_4       2
  29. define KEY_1       3
  30. define KEY_0       4
  31. define KEY_8       5
  32. define KEY_5       6
  33. define KEY_2       7
  34. define KEY_CROSS   8
  35. define KEY_9       9
  36. define KEY_6       10
  37. define KEY_3       11
  38.  
  39. ' Sender-Enable -Signal liegt an Port 16
  40. define digi byteport[2]
  41. define enable port [16]
  42.  
  43. ' --- Initialisierung ---
  44.  
  45.   value = 0
  46.   neg = 0
  47.  
  48. ' --- Tastaturabfrageschleife ---
  49.  
  50. #LOOP
  51.  
  52. ' anhand einer Tabelle werden die vom A/D-Wandler gemessenen
  53. ' Spannungswerte einer Taste zugeordnet, dabei wird eine
  54. ' Toleranz von +- 3 zugelassen, um Widerstandstoleranzen
  55. ' zu kompensieren
  56.  
  57.   for key_nr = 0 to 11
  58.     looktab keycodes, key_nr, compare
  59.     if abs(keyboard-compare) < 3 then gosub SEND_KEY
  60.   next
  61.  
  62. 'kleine Pause
  63.   pause 10
  64.  
  65. ' Endlosschleife
  66. goto LOOP
  67.  
  68. ' --- Vergleichstabelle mit Werten, die mit keyb1.bas ermittelt wurden ---
  69.  
  70. ' sollten die von Ihnen festgestellten Tasten-A/D-Werte von dieser Tabelle
  71. ' etwas abweichen, so ist das normal und durch die Widerstandstoleranzen
  72. ' begruendet
  73.  
  74. table keycodes
  75.   0 23 46 68
  76.   90 111 132 152
  77.   173 193 214 235
  78. tabend
  79.  
  80.  
  81. ' --- Zuordnung von ASCII-Codes fuer die Tasten aus einer Tabelle und Ausgabe ---
  82.  
  83. ' Achten Sie auf die hier implementierten Sonderfunktionen
  84. ' der Tasten # und * sowie auf das Setzten des negativen
  85. ' Vorzeichens durch Druecken der 0 vor der eigentlichen Eingabe
  86.  
  87. #SEND_KEY
  88.   looktab asciicodes, key_nr, key_ascii
  89.   enable = ON        ' Sender einschalten               
  90.   pause 5            ' Stabilisierungszeit fuer den Sender
  91.   put key_ascii      ' Byte uebertragen
  92.   enable = OFF       ' Sender ausschalten
  93.  
  94. return
  95.  
  96. ' negatives Vorzeichen
  97. #NEGATIVE
  98.   neg = not neg
  99.   print "-";
  100. return
  101.  
  102. ' Loeschen des zuletzt eingegebenen Zeichens
  103. #BACKSPACE
  104.   if value = 0 then neg = not neg
  105.   value = value / 10
  106.   put 8
  107.   put 32
  108.   put 8
  109. return
  110.  
  111. ' Eingabe abschliessen
  112. #NEWLINE
  113.   print
  114.   if neg then value = -value
  115.   print "Sie haben "; value; " eingegeben"
  116.   value = 0
  117.   neg = 0
  118. return
  119.  
  120. #ERRORBEEP
  121.   beep 100,10,0
  122. return
  123.  
  124. table asciicodes
  125.   8 55 52 49
  126.   48 56 53 50
  127.   10 57 54 51
  128. tabend
  129.  
  130.  
  131.  
  132.