FAQ-Liste zum Buch MSR mit C-Control/Basic

1. Die Programme für das LCD-Display und die Tastatur funktionieren nicht mit dem Application-Board.

Richtig, das Buch ist vor dem Application-Board entstanden. Das LCD-Display wird im Buch mit 8-Bit-Datenbus angesteuert, der Anschluß auf dem Appöication-Board verwendet eine 4-Bit-Ansteuerung. Auch die Tastatur ist jetzt etwas anders verdrahtet als im Schaltbild dargestellt. Man muß die Programme und Treiber zum Application-Board verwenden, wie sie auch in "C-Control-Anwendungen" beschrieben sind.

2. Kann man mit 5-V-Referenz auch die Sensoren und ihre Tabellen benutzen?

Ja, machmal braucht man einen eine 5-V-Eingang und muß dazu noch einen Sensor einsetzen. Der Meßbereich des Sensors wird dabei auf den halben Meßbereich des AD-Wandlers eingeengt. Wenn man jeden zweiten Eintrag aus der Sensortabelle entfernt, stimmt das Ergebnis wieder. Nur die Auflösunf ist jetzt geringer, z.B. 1 Grad statt 0,5 Grad für den Temperatursensor.

3. Kann man mit der CC-Unit Servos ansteuern?

Man muß dazu Impulse zwischen 1 ms und 2 ms mit hoher Genauigkeit erzeugen. Dies gelingt mit einem Assemblerprogramm. Als Ausgangsbasis kann IMPULSE.ASM aus Kap. 11.2 dienen. Statt der Anzahl muß die Impulslänge übergeben werden.

4. Wo finde ich die Datei NTC.TAB?

Man kann das Programm NTC.BAS aus dem Buch unter Q-Basic starten und erhält dann die Sensordatei. Mancher hat allerdings Probleme, Q-Basic zu bekommen. Deshalb hier die fertige Datei:

NTC.BAS laden (NTC.ZIP, 1 KB)

5. Wie kann das QBASIC-Programm Tabelle.bas (S.145) in Visual Basic umgesetzt werden?

Das folgende Programm wurde in VB5 getestet und kann auch in VB6 geladen werden. Hier wird die RSAPI.DLL aus dem Buch "MSR mit Word und Excel" für die serielle Schnittstelle verwendet. Die DLL muss in der 32-Bit-Verson auf dem PC installiert werden. Sie kann im Download-Bereich dieser Homepage gladen werden.

Private Sub Command1_Click()
  Open "Messung.dat" For Output As #1
  SENDBYTE 27
  Do
    Dat = READBYTE
    If Dat > -1 Then
      U = Dat / 50
      Text1.Text = Text1.Text + Str$(U) + " V   "
      Print #1, U
    End If
  Loop Until Dat = -1
  Close 1
End Sub

Private Sub Form_Load()
  OPENCOM "COM2:9600,N,8,1"
  TIMEOUT 1000
End Sub

Private Sub Form_Unload(Cancel As Integer)
   CLOSECOM
End Sub


Zum Projekt gehört auch noch die Datei RSAPI.BAS mit den Deklarationen der DLL-Funktuionen. Alles zusammen kann hier geladen werden: Tabelle.zip (1,5 kB). Weitrere Infos zur DLL und zur Schnittstelle findet man hier.

Achtung, das Programm schreibt die Datei Messung.dat in das gerade aktuelle Verzeichnis. Das kann man natürlich auch eleganter lösen.

6. Wo sind die CC/Plus-Beispiele?

Tatsächlich, die Beispiele aus dem Kapitel 12 wurden auf der CD vergessen. Aber auf meiner Festplatte sind sie noch. Und jetzt auch hier (Bspplus.zip, 13 k).

7. Wurde in Listing 3.10 "wait" und "pause" verwechselt?

Stimmt, es muss jeweils heißen: pause 2 'Entprellung

'**************************************
'
' C-Control/BASIC/BASIC       WUERFEL3.BAS
'
' Aufgabe: Wuerfelsteuerung mit 7 LEDs:
'
'          D1          D5
'          
'          D2    D4    D6
'
'          D3          D7
'
'
'**************************************

' --- Dekarationen --------------------

define Ausgabe Byteport[1]
define Starttaste port [9]
define Zufall word
define Zahl byte

'---- Programmanweisungen -------------
randomize timer
#loop1
#loop2
pause 2  'Entprellung
if Starttaste = ON then goto loop2
Ausgabe = OFF
pause 2  'Entprellung
#loop3
pause 2  'Entprellung
if Starttaste = OFF then goto loop3
Zufall = rand
print Zufall
Zufall = ABS (Zufall)
Zufall = Zufall mod 371
print Zufall
Zahl = Zufall mod 6 
print Zahl 
' Tabelle 0...5
looktab Bitmuster, Zahl, Ausgabe
goto loop1
end

table Bitmuster
&B00001000  &B00100010
&B00101010  &B01010101
&B01011101  &B01110111
tabend

Listing 3.10: Verwendung der Zufallsfunktion RAND (berichtigt)