Paso 3: Software para PC y Software embebido




Las direcciones de los tres registros que contienen señales digitalizadas son
AN1 3C2h 962
AN4 3C8h 968
AN5 3CAh 970
Aquí está parte del código de Firmware:
Descripción: Inicialización de un convertidor AD en AN1
*****************************************************************************/
InitAD vacío (void)
{
adcon0 = 0 x 09; / * disparador de sw, modo de repetición, AN1 * / / / este es ORIGINAL para los CDS
adcon1 = 0 x 20; / * vref conectado, modo 8 bits * /
adcon2 = 0 x 01; / * Grupo P10, muestra y mantenga presionado * /
adcon0 = 0 x 09; / * disparador de sw, modo de repetición, AN1 * / / / / este se agrega por ABOHMEED FOR AN4
adcon1 = 0 x 20; / * vref conectado, modo 8 bits * /
adcon2 = 0 x 01; / * Grupo P10, muestra y mantenga presionado * /
adst = 1; / * Iniciar conversión * /
}
Software:
La PC del anfitrión ejecuta un programa VB expreso que leer en las direcciones mencionadas en la selección de usuario del puerto de entrada deseada y maneja estos datos de entrada a una clase virtual osciloscopio que la señal en tiempo real.
El usuario selecciona el canal de entrada de la caja de una radio. El resultado carga el registro de control de analógico a digital 0 (adcon0 Dirección 982) con uno de tres entradas según el puerto de entrada deseado:
AN1 h 49
AN4 4Ch
AN5 4Dh
Desde el cliente basado en PC, el usuario puede elegir el canal de entrada que aparecerá en el osciloscopio virtual y la tasa a la que se muestra.
Aquí está la parte de código de Visual Basic.net (corriendo en PC)
Privada Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Button2.Click
Si Button2.Text = "Ejecutar" luego
Button2.Text = "Detener"
Button1.Enabled = False
Button4.Enabled = False
Dim D1(2) como doble
' Dim Db como doble
Dim te como entero
ScopeStarted = True
D1(0) = 0
Hacer
''''''''''''''''''''''''''''''''''''''''''''
HTS. GetMemory2 (lBegin, echar, lDisplayWidth, vMemData)
outValue = vMemData.GetValue(0)
D1(0) = outValue * 0.01953125
TextBox1.Text = outValue
TextBox2.Text = D1(0)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Para i = 0 a 10000 paso 1
' Call ExternalNext (scopehandle, Db)
Llamada ShowNext (scopehandle, D1(0))
Siguiente
Bucle hasta (no ScopeStarted)
Otra cosa
Button2.Text = "Ejecutar"
Button1.Enabled = True
Button4.Enabled = True
ScopeStarted = False
End If
End Sub