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