AdcBase% = 788 'Adressen setzen AdcCtrl% = 789 '-SEL2 write only AdcIO% = 790 '-SEL1 write, -SEL3 read esc$ = CHR$(27) 'ESCAPE ist Dezimal 27 gain% = 0 'Verstaerkung 0=1, 1=2, 2=4, 3=8... OPEN "cons:" FOR OUTPUT AS #2 'Bildschirmausgabe oeffnen OUT AdcCtrl%, 0 + 32 * gain% 'Verstaerkung einstellen PRINT #2, esc$; "[2J" 'Bildschirm loeschen WHILE INKEY$ = "" 'Abbrechen wenn Taste gedrueckt PRINT #2, esc$; "[H"; 'an HOME Position FOR ch% = 0 TO 5 'alle Kanaele durchlaufen OUT AdcCtrl%, ch% + 32 * gain% 'Multiplexer und Gain einstellen FOR warte% = 0 TO 32000 'Warten NEXT warte% OUT AdcBase%, 0 'Messung starten warte% = 4095 '-BUSY Timeout setzen DO UNTIL INP(AdcIO%) AND 8 'warten bis -BUSY wieder high warte% = warte% - 1 LOOP adwert = INP(AdcBase%) 'LOWBYTE lesen OUT AdcIO%, 64 'HBEN setzen adwert = adwert + (INP(AdcBase%) * 256) 'HIGHBYTE lesen und addieren OUT AdcIO%, 0 'HBEN loeschen 'adwert = adwert * gain% * 5 / 4095 'Analogwert berechnen IF warte% THEN 'Daten Ausgeben PRINT #2, "Kanal"; ch%; ":"; adwert ELSE PRINT #2, "Kanal"; ch%; "Busy Timeout" END IF NEXT ch% 'naechster Kanal WEND 'naechster Durchgang CLOSE END