home *** CD-ROM | disk | FTP | other *** search
- 10 rem =ohm-messung=========c64/128
- 20 rem
- 30 rem written by a. mittelmeyer
- 40 rem
- 50 rem ============================
- 60 printchr$(147)"widerstandsmessung mit dem computer"
- 70 print"am joystickport 1 zwischen pin 5 und 7"
- 80 print"angeschlossene widerstaende"
- 90 print"im bereich von 10 kiloohm bis"
- 100 print"300 kiloohm werden vom programm"
- 110 print"in der abstufung der reihe e24"
- 120 print"angezeigt."
- 130 print"es duerfen keinesfalls widerstaende"
- 140 print"unter 100 ohm angeschlossen werden !!!"
- 150 print"um kurzschluesse zu vermeiden, sollte"
- 160 print"ein vorwiderstand von 100 bis 200 ohm"
- 170 print"benutzt werden."
- 180 print"weiter mit taste[146]"
- 190 geta$:ifa$=""then190
- 200 gosub630:rem tabelle
- 210 printchr$(147)
- 220 gosub300:rem wertabfrage (n)
- 230 gosub 350:rem tabellenposition (nr)
- 240 gosub420:rem berechnung r
- 250 gosub460:rem normreihe (m,e)
- 260 m$=str$(m):iflen(m$)=2thenm$=m$+".0"
- 270 print""m$" e"e:rem ausgabe
- 280 goto 220
- 290 rem --- wertabfrage ---
- 300 az=30:su=0:fori=1toaz
- 310 n=peek(54298):rem wertabfrage
- 320 su=su+n:next
- 330 n=su/az:return
- 340 rem --- tab-position (nr) ---
- 350 nr=-1:fori=0todn-1
- 360 ifn<=fe(i,0)thennr=i:i=dn
- 370 next
- 380 ifnr<0thennr=dn-1
- 390 ifnr=0thennr=1
- 400 return
- 410 rem --- widerstandsberechnung ---
- 420 ya=fe(nr-1,1):yb=fe(nr,1)
- 430 xa=fe(nr-1,0):xb=fe(nr,0)
- 440 r=ya+(n-xa)*(yb-ya)/(xb-xa):return
- 450 rem --- normreihe ---
- 460 as=24:rem abstufung
- 470 e=int(log(r)/log(10)):rem exponent
- 480 m=r/10^e:rem mantisse
- 490 s=int(as*log(m)/log(10)-.5):rem stufe
- 500 wl=10:fori=1to3:rem 3 werte pruefen
- 510 gosub540:s=s+1:next
- 520 m=ma:e=ea:return
- 530 rem --- wertvergleich ---
- 540 ifs<0thens=as-1:e=e-1
- 550 ifs=asthene=e+1:s=0
- 560 a=1.5:ifs<10thena=.5
- 570 ifs>int(16/24*as+.5)thena=.3
- 580 m=int(10^(s/as)*10+a)/10:rem mantisse e-reihe
- 590 rv=m*10^e:wv=rv/r:ifwv<1thenwv=1/wv
- 600 ifwv<wlthenea=e:ma=m:wl=wv
- 610 return
- 620 rem --- widerstandstabelle ---
- 630 dimfe(20,1)
- 640 reada:ifa=-1thenreturn
- 650 fe(dn,0)=a:readb:fe(dn,1)=b
- 660 dn=dn+1:goto640
- 670 data 3,1500
- 680 data 8,5600
- 690 data 9.1,6800
- 700 data 13,10000
- 710 data 18.5,15000
- 720 data 26,22000
- 730 data 27.8,24000
- 740 data 59.6,56000
- 750 data 76.7,75000
- 760 data 119.8,130000
- 770 data 185.6,220000
- 780 data 240.5,300000
- 790 data -1
- 800 rem --- programmende ---
-