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 adcon0 = 0 x 09; / * disparador de sw, modo de repetición, AN1 * / / / / este se agrega por ABOHMEED FOR AN4
*****************************************************************************/
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 * /
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 Dim D1(2) como doble ScopeStarted = True D1(0) = 0 '''''''''''''''''''''''''''''''''''''''''''' HTS. GetMemory2 (lBegin, echar, lDisplayWidth, vMemData) outValue = vMemData.GetValue(0) D1(0) = outValue * 0.01953125 TextBox1.Text = outValue '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Para i = 0 a 10000 paso 1 ' Call ExternalNext (scopehandle, Db) Siguiente Bucle hasta (no ScopeStarted) Otra cosa
Button2.Text = "Detener"
Button1.Enabled = False
Button4.Enabled = False
' Dim Db como doble
Dim te como entero
Hacer
TextBox2.Text = D1(0)
Llamada ShowNext (scopehandle, D1(0))
Button2.Text = "Ejecutar"
Button1.Enabled = True
Button4.Enabled = True
ScopeStarted = False
End If
End Sub