- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Digitalmultimeter c# problem

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    31.01.2009
    Ort
    schwabch
    Alter
    39
    Beiträge
    93
    Anzeige

    Praxistest und DIY Projekte
    OK mach ich aber ich würde aber auch gerne mas sehn wie du die Daten von Comport holst. ( Event-Handler usw.. )

    Buffer erstellen:
    Code:
    byte[] M_byte_Buffer_01 = new byte[5];
    byte[] M_byte_Buffer_02 = new byte[5];
    Wenn du die Daten hast werden sie abwechselnd in M_byte_Buffer_01 / M_byte_Buffer_02 geschickt ! Und zu gleich holst du die Daten von M_byte_Buffer_01 / M_byte_Buffer_02. Aber nicht von den die gerade beschrieben werden

    PS: Wenn man es jetzt genau nimmt ist es 3 fach gepuffert! Ich hab vergessen das beim:
    ( serialPort1 System.IO.Ports.SerialPort ) Puffer dabei sind?
    Wie gross ist "ReadBufferSize" bei dir ?

    MFG Oliver G

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2012
    Beiträge
    6
    Danke für die Antwort. Ich überlege aber auf USB umzusteigen, dann Hatte ich die Übertragungsprobleme nicht mehr. Kennt sich da jemand aus mit der USB-Kommunikation in C#. Und auch wie ich das mit einem USB-Fähigem Atmell µC mache?

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2012
    Beiträge
    6
    Aber Vielleicht bleibe ich doch bei RS232. Hier ist mein Code. Hoffentlich weiß jemand, wie ich es verbessern könnte. Ich verwende einen 6 Byte buffer und das Data_Recive Event wird nach 5 empfangenen Bytes ausgelöst.
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO.Ports;
    using NationalInstruments;
    using NationalInstruments.UI;
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public static double Messwert;
            public static int werte = 0;
            public static double[] dataValues = new double[200];
            public Form1()
            {
                InitializeComponent();
                serialPort1.Open();
            }
            
    
    
    private delegate void SetTextDeleg(double text);
    public void serialPort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
    {
        double messval = messen();
        this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { messval });
            waveformGraph1.PlotY(dataValues, 0, 10, 0, 5);
    
    }
    
    
    private void si_DataReceived(double data) 
    {
        label1.Text = data.ToString();
        meter1.Value = data;
    }
    
    
    
    
    public double messen()
    {
        string mess = "";
        mess = serialPort1.ReadTo("a");
        serialPort1.DiscardInBuffer();
            try
            {
                Messwert = Convert.ToDouble(mess) / 1023 * 5.07*2.794;
                dataValues[i] = Messwert;
                i++;
            }
            catch
            {
                serialPort1.DiscardInBuffer();
            }
        return Messwert;
    }
      
    
        }
    }
    Geändert von didi34 (05.02.2012 um 14:46 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 19:45
  2. Problem mit Atmega644P Erkennung (Bascom-Versions-Problem)
    Von Rohbotiker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2008, 19:52

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test