Schritt 3: PC-Software und Embedded Software
Adressen der drei Register, die digitalisierten Signale enthalten sind
An1 3C2h 962
AN4 3C8h 968
An5 3CAh 970
Hier ist Teil der Firmware-Code:
Beschreibung: Initialisierung eines AD-Wandlers auf AN1 adcon0 = 0x09; / * sw Trigger, Wiederholungsmodus, AN1 * / / / / Dies ist durch ABOHMEED FOR AN4 hinzugefügt
*****************************************************************************/
void InitAD (void)
{
adcon0 = 0x09; / * sw Trigger, Wiederholungsmodus, AN1 * / / / Dies ist ORIGINAL für CDS
adcon1 = 0 x 20; / * Vref angeschlossen, 8-Bit-Modus * /
adcon2 = 0 x 01; / * P10-Gruppe, zu probieren und zu halten * /
adcon1 = 0 x 20; / * Vref angeschlossen, 8-Bit-Modus * /
adcon2 = 0 x 01; / * P10-Gruppe, zu probieren und zu halten * /
Adst = 1; / * Konvertierung starten * /
}
Software:
Der Host-PC läuft ein VB-express-Programm die von die genannten Adressen auf die Benutzerauswahl des gewünschten Eingangs-Port gelesen und verarbeitet diese Eingabedaten zu a-Klasse virtueller Oszilloskop zieht das Signal in Echtzeit.
Der Benutzer wählt den Eingangskanal durch eine RC-Box. Das Ergebnis ist der Analog-Digital-Control Register 0 (adcon0 Adresse 982) mit einem der drei Eingänge nach den gewünschten Eingang laden:
An1 49h
AN4 4Ch
An5 4Dh
Von der PC-basierten Client kann der Benutzer wählen den Eingangskanal auf virtueller Oszilloskop und die Rate, mit der es angezeigt wird.
Hier ist Teil der Visual Basic.net-Code (auf PC)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Griffe Button2.Click Wenn Button2.Text = "Run" Then Dim D1(2) As Double ScopeStarted = True D1(0) = 0 '''''''''''''''''''''''''''''''''''''''''''' HTS. GetMemory2 (lBegin, verleihen, lDisplayWidth, vMemData) zurückzusendenden = vMemData.GetValue(0) D1(0) = zurückzusendenden * 0.01953125 TextBox1.Text = zurückzusendenden '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Für i = 0 bis 10000 Schritt 1 "Rufen Sie ExternalNext (Scopehandle, Db) Nächsten ich Schleife, bis (nicht ScopeStarted) Anderes
Button2.Text = "Stop"
Button1.Enabled = False
Button4.Enabled = False
"Dim Db As Double
Ich als Ganzzahl Dim
Tun
TextBox2.Text = D1(0)
Rufen Sie ShowNext (Scopehandle, D1(0))
Button2.Text = "Laufen"
Button1.Enabled = True
Button4.Enabled = True
ScopeStarted = False
End If
End Sub