Étape 3: Logiciel de PC et logiciel embarqué
Les adresses des trois registres qui contiennent des signaux numérisés sont
An1 3C2h 962
AN4 3C8h 968
3CAh an 5 970
Voici la partie du code du microprogramme :
Description : L’initialisation d’un convertisseur AD sur AN1 adcon0 = 0 x 09 ; / * déclencheur de sw, mode répétition, AN1 * / / / / ceci est ajouté par AN4 FOR ABOHMEED
*****************************************************************************/
void InitAD (void)
{
adcon0 = 0 x 09 ; / * déclencheur de sw, mode répétition, AN1 * / / / ce est pour les CD originaux
adcon1 = 0 x 20 ; / * Vréf connecté, mode 8 bits * /
adcon2 = 0 x 01 ; / * Groupe P10, goûter et maintenez * /
adcon1 = 0 x 20 ; / * Vréf connecté, mode 8 bits * /
adcon2 = 0 x 01 ; / * Groupe P10, goûter et maintenez * /
ADST = 1 ; / * commencer la conversion * /
}
Logiciel :
Le PC hôte exécute un programme VB express lire les adresses mentionnées sur la sélection de l’utilisateur de la voie d’entrée souhaitée et elle gère ces données d’entrée à une classe d’oscilloscope virtuel qui tire le signal en temps réel.
L’utilisateur sélectionne le canal d’entrée d’une boîte de radio. Le résultat se charge du registre de contrôle analogique / numérique 0 (adcon0 adresse 982) avec l’un d’un trois entrées selon la voie d’entrée souhaitée :
An1 49h
AN4 4Ch
An5 4Dh
Depuis le client basé sur PC, l’utilisateur peut choisir le canal d’entrée à afficher sur l’oscilloscope virtuel et la vitesse à laquelle il est affiché.
Voici une partie du code Visual Basic.net (en cours d’exécution sur PC)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Si Button2.Text = « Run » puis Dim D1(2) As Double ScopeStarted = True D1(0) = 0 '''''''''''''''''''''''''''''''''''''''''''' HTS. GetMemory2 (lBegin, prêter, lDisplayWidth, vMemData) outValue = vMemData.GetValue(0) D1(0) = outValue * 0.01953125 TextBox1.Text = outValue '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' For i = 0 à 10000, étape 1 « Composez le ExternalNext (scopehandle, Db) Prochaine je Boucle jusqu'à (pas ScopeStarted) D’autre
Button2.Text = « Stop »
Button1.Enabled = False
Button4.Enabled = False
' Dim Db As Double
Dim i As Integer
Faire
TextBox2.Text = D1(0)
Appelez ShowNext (scopehandle, D1(0))
Button2.Text = « Run »
Button1.Enabled = True
Button4.Enabled = True
ScopeStarted = False
End If
End Sub