- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 14

Thema: Board und Software verbinden (r232)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Also ich kann auch kein Englisch trotzdem bin ich erfolgreich Elektroniker geworden. Die nötigen Fachbegriffe habe ich halt auswendig gelernt und aussprechen kann ich nach über 30 Berufsjahren immer noch keinen. Alles was ich vom µC's weiß habe ich mir in ? 10.000 oder mehr Stunden durch lesen und ausprobieren selber bei gebracht hauptsächlich Assembler recht wenige Befehle die man lernen muss, und Basic in verschiedenen Dialekten. Mit Cxxx stehe ich immer noch auf Kriegsfuss, die sytax ist einfach nichts für mich, b.z.w. für deutsche Tastatur Belegungen.

    Das größte Problem bei Hochsprachen ist das mangelnde Verständnis was der Compiler aus den Befehlen letztendlich generiert. Das lernt man NUR durch Assembler als Grundlage. Da muss man halt jede Speicherstelle und jedes Register selber setzen, auf den Stack aufpassen und Speicher Überläufe vermeiden....

    Mitten drin quer Einsteigen ist immer sehr sehr schwer wenn die Grundlagen fehlen. Ist wie beim Tapezieren, fehlt die Grundlage fällt die Tapete von der Wand.

    Trotzdem viel Glück und eine menge Hartnäckigkeit, dann wird das schon! Wenn der Simulator eh überwiegend 0 oder 1 liefert, Beschäftigen Dich auch mit Bit Operationen, dann kannst Du mit einem Word, Doppel Word oder Long einen Haufen Infos übertragen.

    Gruß Richard

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2011
    Beiträge
    22
    So habe nun gestern Abend noch etwas versucht.
    Einschalten der Led von der Software aus via Buttons.

    Nun ist der erste Schritt getan ich muss nun noch herrausfinden wie ich
    nun meine Daten bündele und in einen Satz an meinen Mega sende.

    Aktuell öffne und schliesse ich ja per Klick auf den Button den Port ständig.
    Bei 50 Abfragen ,... muss es anders laufen es muss ein Paket versendet werden was alles beinhaltet.
    *Kopfkratz*

    Also mein nächster Test wird sein "1 Button(openPort)" & "1 Button(closePort)" den Port zu öffnen & zu schliessen und 2 weitere Buttons um Led an oder auszuschalten.
    Die Buttons zum ein und ausschalten der LEDs würde ich mit einer IF Abfrage gestalten somit würde das ständige open&close des Ports entfallen.
    Ausserdem würde es Sinn machen alle relevanten Daten am Anfang des Script zu defenieren so das später an besagten Stellen so wenig Code wie nötig zum versenden der Daten entsteht.

    Melde mich wenn ich weiter bin

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Lege doch einfach eine Liste mit den Daten an.......
    1.Kappen
    2 Ruder
    3.
    4.
    5.
    u.s.w. das in einer Data Anweisung 1,2,3,4,5..........X
    Dann Print#1, Data,1...x

    Beim Empfänger dann den umgekehrtten Weg und erst nach der Übertragung aller Daten diese in der Hauptschleife einzelnd auswerten. Die Daten Übertragung selber zyklisch über IRQ alle xyz ms. Du weist ja an welcher Stelle, Data 1 Klappe, Data 2 Ruder.....was zu finden ist. Open/Close dann am Beginn/Ende des IRQ.

    Sollte vom Schema her zu machen sein.

    Gruß Richard

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2011
    Beiträge
    22
    Habe es nun so geschrieben mit Port-Open/Close das die Anweisung vorher prüft ob der Port open ist wenn nicht wird er geöffnet unabhängig davon wird durch starten meiner Abfrage auch der Port geöffnet. Falls aus irgendeinem Grund der Port gecloset wird ... öffnet er sich wieder automatisch. Eigentlich ne simple IF Else Abfrage.

    Ich weiss nicht was eine Dataanweisung ist.
    Verstanden habe ich deinen Vorschlag nur umsetzen ist etwas anderes.

    Ich versuche es mal wenn jemand Tipps Tricks oder kniffe hat oder gar snippet oder Hilfe Tutorials immer her damit.


    Gruß Tom

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Bascom Hilfe nach DATA suchen....Gibt es in c sicher auch! Mit Data wird ein Ram Bereich ab Adresse x bis Adresse y mit Daten gefüllt. Auf diese Daten kann man mit Data x x+1, x+2, x+y wieder zugreifen. wenn Du also eine Tabelle mit allen zu übertragenden Parametern als Data 1 bis Data (Ende der Tabelle) anlegst und die dann in einem Rutsch überträgst und damit beim Empfänger eine gleiche Tabelle anlegst, kannst Du z.B. Mittels Data 15 auf die 15. Stelle (Speicherplatz) zugreifen.

    Die genaue Syntax habe ich nicht im Kopf, in C sowieso nicht. Natürlich kann man ähnliches auch mit einem Arry machen.


    Tabellen und Data http://www.rn-wissen.de/index.php/Bascom_Tabellen

    Gruß Richard

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2011
    Beiträge
    22
    Also ich habe mich ganz flüchtig in das Thema Array eingelesen und wenn ich das richtig verstanden habe mache ich nun eine Kette

    array(1,3,4,5,6,5,4,33,221,11,22,88,);

    so speicher ich das ab und dann

    gehe ich in Bascom raus und spreche die einzlnen Stellen an?

    Es schaut einfach aus aber ist sicherlich so nicht funktionell?!
    Auf diese Weise haut er immer alles raus da aber nicht ständig sich alles verändert...

    So müssten nur die Daten übertragen werden die auch aktualisiert werden das würde
    enormen Speed sicherlich ausmachen?

    Oder ist das mit einem Array möglich durch auslassen eines Wertes in dem Array ergo

    Array(1,"",4,5,"","",4,33,"",11,22,88,);

    Gott ist das wieder kompliziert *grins*

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2011
    Beiträge
    22
    Ok ich benötige bitte Hilfe ich möchte zum testen erstmal 3 zustände realisieren wobei es schon beim ersten Zustand zu Problemen kommt. Mit folgendem Code funktioniert es das eine Led an oder aus geht das allerdings äusserst selten. Ich glaube das sich da bei der Übertragung überschlägt. Die Leitung habe ich geprüft es kommen keine fehlerhaften Zeichen an ,... ich denke es liegt an einem ordentlichen Timing?

    Warum wird trotz das ich eine eins oder zwei sende das bei der Led so nicht geschaltet?


    Gruß Thomas

    C# code
    Code:
    if ((data.lightBits3 & 0x10000) != 0)
                    {
                        txtNoseGear.Text = "1";  // ausgefahren
                        serialPort1.Write("2");    // sende eine 2 an den Chip
                    } else {
                        txtNoseGear.Text = "0"; // eingefahren
                        serialPort1.Write("1");   // sende eine 1 an den Chip
    
                    }
                    Thread.Sleep(1);

    Bascom code
    Code:
    'LED1 an PB0
    Led1 Alias Portb.0
    Config Led1 = Output
    
    
    Dim A As Byte
    
    
    Do
    
      A = Inkey()                                               
    
    
    
      If A = 1 Then                                             
        Led1 = 0               //Rad eingefahren LED ausschalten
      End If
    
      If A = 2 Then                                            
        Led1 = 1              //Rad ausgefahren LED ausschalten
      End If
    
    
       'If A > 0 Then                                            'we got something
       ' Print "ASCII code " ; A ; " from serial"
       'End If
    
    Loop                                                        
    
    
    A = Waitkey()                                               'wait for a key
    
    'Print Chr(a)
    
    Do
    
    Loop Until Inkey() = 27
    
    End

    Gegentest mit Putty // Werte in Bascom als ASCII ersetzt
    Nun kann ich per Tastatur und den Tasten 1 & 2 die Led ein oder ausschalten.
    Bei dieser Variante viel mir auch auf das wenn die Led eigentlich angehen sollte sie ausgeht und umgekehrt.
    Tastatur 1 = Led geht an / Tastatur 2 = Led geht aus
    Irgendwie ist doch hier der Wurm drin?

    Code:
    'LED1 an PB0
    Led1 Alias Portb.0
    Config Led1 = Output
    
    
    Dim A As Byte
    
    
    Do
    
      A = Inkey()                                               
    
    
    
      If A = 49 Then                                             
        Led1 = 0               //Rad eingefahren LED ausschalten
      End If
    
      If A = 50 Then                                            
        Led1 = 1              //Rad ausgefahren LED ausschalten
      End If
    
    
       'If A > 0 Then                                            'we got something
       ' Print "ASCII code " ; A ; " from serial"
       'End If
    
    Loop                                                        
    
    
    A = Waitkey()                                               'wait for a key
    
    'Print Chr(a)
    
    Do
    
    Loop Until Inkey() = 27

Ähnliche Themen

  1. Bootloader über R232
    Von Lageos im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 2
    Letzter Beitrag: 27.08.2009, 08:31
  2. IR Led von der R232...
    Von Bubble10 im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 28.09.2008, 20:39
  3. Hiiilfe! SRF02 R232-Mode an PC
    Von daddycool im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 30.09.2007, 20:02
  4. Gabellichtschranke mit Board verbinden?
    Von jagdfalke im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 21.03.2007, 07:29
  5. Wie Webserver und Board verbinden bzgl. Datenübergabe
    Von DirkS im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 29.10.2005, 07:15

Berechtigungen

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

12V Akku bauen