Virtuellt oscilloskop - DIY (3 / 4 steg)
Steg 3: PC-programvara och inbyggd programvara
Adresserna för de tre register som innehåller digitaliserade signaler är
AN1 3C2h 962
AN4 3C8h 968
AN5 3CAh 970
Här är en del av Firmware koden:
Beskrivning/kontroller: Initiering av en AD-omvandlare på AN1 adcon0 = 0x09; / * sw trigger, upprepningsläge, AN1 * / / / / detta är lagt av ABOHMEED för AN4 adst = 1; / * Starta konverteringen * /
*****************************************************************************/
void InitAD (void)
{
adcon0 = 0x09; / * sw trigger, upprepningsläge, AN1 * / / / här är ORIGINAL för CD-skivor
adcon1 = 0x20; / * vref ansluten, 8 bitars läge * /
adcon2 = 0x01; / * P10 grupp, prova och håll * /
adcon1 = 0x20; / * vref ansluten, 8 bitars läge * /
adcon2 = 0x01; / * P10 grupp, prova och håll * /
}
Programvara:
Värden PC körs ett VB express program som läsa från nämnda adresser på användarens val av önskad Indataporten och hanterar denna indata till ett virtuellt oscilloskop klass som drar signalen i realtid.
Användaren väljer inmatningskanal av en radio-ruta. Resultatet laddar analog-till-digital kontroll registret 0 (adcon0 adress 982) med en av en tre ingångar enligt önskad Indataporten:
AN1 49h
AN4 4-kanals
AN5 4Dh
Från PC-baserad klient, kan användaren välja ingångskanal ska visas på det virtuella oscilloskopet och den kurs som den visas.
Här är en del av Visual Basic.net koden (som kör på PC)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Button2.Click Om Button2.Text = "Kör" då Dim D1(2) som dubbel ScopeStarted = sant D1(0) = 0 Göra '''''''''''''''''''''''''''''''''''''''''''' HTS. GetMemory2 (lBegin, låna ut, lDisplayWidth, vMemData) outValue = vMemData.GetValue(0) D1(0) = outValue * 0.01953125 TextBox1.Text = outValue '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' För i = 0 till 10000 steg 1 "Ring ExternalNext (scopehandle, Db) Nästa jag Loop tills (inte ScopeStarted) Annat
Button2.text = "Stoppa"
Button1.Enabled = False
Button4.Enabled = False
"Dim Db som dubbel
Dim jag som heltal
TextBox2.Text = D1(0)
Ring ShowNext (scopehandle, D1(0))
Button2.text = "Kör"
Button1.Enabled = sant
Button4.Enabled = sant
ScopeStarted = False
Slut om
End Sub