PIC16F876---> MAX233--->RS232--->PC--->C#

OP #1600249
Hallo Zusammen,

ich habe eine Frage zu ADC und  Visualisierung der Meswerte auf meinem 
PC
mit C#.

Ich messe Spannung mit PIC16F876 und möchte die Messwerte über Max233 
anzeigen lassen.

Meine Anwendung zeigt sehr komische Werte wie:

bei einer Spannung von 5 V -->   3,72E-294
-----------------  von 3,72 v--> 5,37E-299
-----------------  von 2,42 V--> 7,74E-304

weisst jemand was es seien kann?

wäre dankbar für jede info!
OP
ich empfange die Daten mit:

int count = serialPort1.BytesToRead;
                byte[] ba = new byte[count];
                serialPort1.Read(ba, 0, count);

dann konvertiere in double, dann werden die Werte in richTextBox 
angezeigt.

Muss ich noch irgendwelche Schritte dazwischen durchführen?
Gast
Ja, mal ein bischen mehr Infos rüberwachsen lassen! Das ist eine 
Frechheit! Wenn Du eine vernünftige Antwort haben willst, dann gebe Dir 
bei der Fragestellung bitte ein bisschen mehr mühe!

Schaltung?! Source-Code?!
OP
mit dieser Methode empfange ich die Daten:

private void Erfassen()
        {
            try
            {
                int count = serialPort1.BytesToRead;
                byte[] ba = new byte[count];
                serialPort1.Read(ba, 0, count);


                Double data1 = BitConverter.ToDouble(ba, 0);
                Double data2 = BitConverter.ToDouble(ba, 0);


                richTextBox1.Invoke(new EventHandler(delegate
                {
                    richTextBox1.Text = data1.ToString();

                }));
                label1.Invoke(new EventHandler(delegate
               {
                   label1.Text = data2.ToString();
               }));
            }
            catch { };

anbei noch die Schaltung:
Angehängte Dateien:
OP
Hallo,

ich habe den PIC in Assambler programiert und dann nch in C.
In beiden Fällen habe ich die falschen Werte erhalten oder mache ich 
noch was nicht ganz richtig.

hier ist main () Funktion aus dem Programm

void main(void)
{
    uns16 a;                // Variablen
    char n;

    //++  Einstellungen des AD-Wandlers  ++++++++++++++++++++++++++++
    ADCON1=0;               // Ganzer PortA als Analog Vdd Vss
    ADON=1;                 // ADC-Einschalten
    ADCS1=1 ;               // Geschwingigkeit der ADC
    ADCS0=0 ;
    ADFM=1;                 // Rechts Ausrichtung
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    TRISC=0b.1011.1100;     // RC6>TX, RC7>RX
    InitUSART();            // Hardwareschnittstelle des PICs einstellen

    while(1)                // Ganzes Programm ist Endlosschleife
    {
        while(!RCIF);       // Warte auf Empfang
        n=RCREG;            // Empfange Kanalnummer
        a=ADC(n);           // AD-Wandlung
        while(!TXIF);       // Prüfen, ob Sender frei ist
        TXREG = a.low8;     // Niederes Datenbyte senden
        while(!TXIF);       // Prüfen, ob Sender frei ist
        TXREG = a.high8;    // Oberes Datenbyte senden

    }                       // Ende der Schleife
}                           // Ende des Hauptprogramms

Gruß
Serg

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.