home *** CD-ROM | disk | FTP | other *** search
/ Profi Club / Profi_Club_2_1992_-_de.d64 / ohm-messung (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  2KB  |  81 lines

  1. 10 rem =ohm-messung=========c64/128
  2. 20 rem
  3. 30 rem written by a. mittelmeyer
  4. 40 rem
  5. 50 rem ============================
  6. 60 printchr$(147)"widerstandsmessung  mit dem computer"
  7. 70 print"am joystickport 1 zwischen pin 5 und 7"
  8. 80 print"angeschlossene widerstaende"
  9. 90 print"im bereich von 10 kiloohm bis"
  10. 100 print"300 kiloohm werden vom programm"
  11. 110 print"in der abstufung der reihe e24"
  12. 120 print"angezeigt."
  13. 130 print"es duerfen keinesfalls widerstaende"
  14. 140 print"unter 100 ohm angeschlossen werden !!!"
  15. 150 print"um kurzschluesse zu vermeiden, sollte"
  16. 160 print"ein vorwiderstand von 100 bis 200 ohm"
  17. 170 print"benutzt werden."
  18. 180 print"weiter mit taste[146]"
  19. 190 geta$:ifa$=""then190
  20. 200 gosub630:rem tabelle
  21. 210 printchr$(147)
  22. 220 gosub300:rem wertabfrage (n)
  23. 230 gosub 350:rem tabellenposition (nr)
  24. 240 gosub420:rem berechnung r
  25. 250 gosub460:rem normreihe (m,e)
  26. 260 m$=str$(m):iflen(m$)=2thenm$=m$+".0"
  27. 270 print""m$" e"e:rem ausgabe
  28. 280 goto 220
  29. 290 rem --- wertabfrage ---
  30. 300 az=30:su=0:fori=1toaz
  31. 310 n=peek(54298):rem wertabfrage
  32. 320 su=su+n:next
  33. 330 n=su/az:return
  34. 340 rem --- tab-position (nr) ---
  35. 350 nr=-1:fori=0todn-1
  36. 360 ifn<=fe(i,0)thennr=i:i=dn
  37. 370 next
  38. 380 ifnr<0thennr=dn-1
  39. 390 ifnr=0thennr=1
  40. 400 return
  41. 410 rem --- widerstandsberechnung ---
  42. 420 ya=fe(nr-1,1):yb=fe(nr,1)
  43. 430 xa=fe(nr-1,0):xb=fe(nr,0)
  44. 440 r=ya+(n-xa)*(yb-ya)/(xb-xa):return
  45. 450 rem --- normreihe ---
  46. 460 as=24:rem abstufung
  47. 470 e=int(log(r)/log(10)):rem exponent
  48. 480 m=r/10^e:rem mantisse
  49. 490 s=int(as*log(m)/log(10)-.5):rem stufe
  50. 500 wl=10:fori=1to3:rem 3 werte pruefen
  51. 510 gosub540:s=s+1:next
  52. 520 m=ma:e=ea:return
  53. 530 rem --- wertvergleich ---
  54. 540 ifs<0thens=as-1:e=e-1
  55. 550 ifs=asthene=e+1:s=0
  56. 560 a=1.5:ifs<10thena=.5
  57. 570 ifs>int(16/24*as+.5)thena=.3
  58. 580 m=int(10^(s/as)*10+a)/10:rem mantisse e-reihe
  59. 590 rv=m*10^e:wv=rv/r:ifwv<1thenwv=1/wv
  60. 600 ifwv<wlthenea=e:ma=m:wl=wv
  61. 610 return
  62. 620 rem --- widerstandstabelle ---
  63. 630 dimfe(20,1)
  64. 640 reada:ifa=-1thenreturn
  65. 650 fe(dn,0)=a:readb:fe(dn,1)=b
  66. 660 dn=dn+1:goto640
  67. 670 data 3,1500
  68. 680 data 8,5600
  69. 690 data 9.1,6800
  70. 700 data 13,10000
  71. 710 data 18.5,15000
  72. 720 data 26,22000
  73. 730 data 27.8,24000
  74. 740 data 59.6,56000
  75. 750 data 76.7,75000
  76. 760 data 119.8,130000
  77. 770 data 185.6,220000
  78. 780 data 240.5,300000
  79. 790 data -1
  80. 800 rem --- programmende ---
  81.