serielle Schnittstelle mit C++ an AVR! DRINGEND HILFE BENÖTIGT !!! KNIFFLIG !!!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • serielle Schnittstelle mit C++ an AVR! DRINGEND HILFE BENÖTIGT !!! KNIFFLIG !!!

    Zuerst mal!
    Bin hier neu!
    Mein Name ist Michael, ich bin 18 Jahre alt und gehe auf eine technische Schule in wien!
    ich bin ca. 185 groß und eigentlich sportlich, neige aber in letzter zeit aufgrund des Mangels an Zeit(Maturastress) zu einem
    kleinen Speckansatz! ;)
    hm...
    Ich bin nett, habe humor (sagen die meisten) und eigentlich komm ich mit allen gut aus (und die auch mit mir hoffe ich!)
    bei fragen einfach anschreiben!

    Hi Leute, was das programmieren betrifft bin ich zwar kein purer Frischling, aber doch
    bestimmt unerfahren gegen die meisten von euch!
    Ich habe mich so durchgekämpft bisher was das programmieren betrifft und durch bücher und tutorials gewälzt und ähnliches!
    aber jetzt brauche ich hilfe von euch profis!
    Bitte schickt mir jedoch keine links, wo ein befehl steht, denn ich hab sowas bereits versucht und ich kriegs dann in dem
    schwierigkeitsgrad irgendwie nicht mehr auf die reihe es richtig einzubauen!
    also:
    Kann mir wer von euch sagen(noch besser zeigen), wie ich die serielle schnittstelle eines PC´s von C++ aus ansteuere?
    also ich will einfach einen wert einer variable, also eine Zahl, über die serielle raussenden!
    wie geht das?
    also wenn es hilft, genauergesagt über die serielle an einen AVR!
    also einfach ein paar zahlen will ich raussenden über die serielle schnittstelle über C++!

    DANKE im voraus

    Michael

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MichaelMAS ()

  • Also hallo ich bin auch recht frisch njä ...

    Kann mir wer von euch sagen(noch besser zeigen), wie ich die serielle schnittstelle eines PC´s von C++ aus ansteuere?

    Ich weiß, dass man unter Linux ganz leicht auf /dev/ttyS0 ausgeben kann über >> und << wenn man das als Datei betrachtet/läd glaube ich - vom Prinzip her geht's so.

    Bei Windows ... hm.
    Wenns dafür sogar kommerzielle Angebote gibt ( brothersoft.com/windows-std-se…-lib-for-c-c++-16382.html ), wird es wohl nicht sehr leicht sein.

    Ach krass, hier hat jemand mit 2 Zeilen Assembler in/output Funktionen geschrieben:
    mikrocontroller.net/articles/Ports_benutzen_(Windows)
    Weiterführende Links dort auch !

    Ähm is zwar verboten, zu sagen, aber hier steht auch was: (ergoogelt mit " read ttyS0 c++ linux " )
    c-plusplus.de/forum/viewtopic-var-t-is-39504.html
    Da gibts ganze Bücher drüber :-/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zyklo ()

  • Damit niemand glaubt, ich bin eine faule ***!
    Hier was ich mir so dachte!
    wird das gehen? errors gibts keine!
    und wenn nicht, wie gehts wirklich?
    und noch eine frage: was muss der andere machen um zu empfangen?

    Quellcode

    1. #include <windows.h>
    2. #include <stdio.h>
    3. #include <mmsystem.h>
    4. #include <cstdlib>
    5. #include <iostream>
    6. #include "Serial.h" //einlesen der Headerdatei
    7. #include "Serial.cpp" //implementieren der .cpp datei
    8. using namespace std;
    9. CSerial COMPort; // für serielle übertragung auf den AVR
    10. //Definieren der variabeln
    11. unsigned char out_byte;
    12. int main(int argc, char *argv[])
    13. {
    14. COMPort.Open(1,19200); // Hier wird der COM Port geöffnet erste Zahl = Comportnummer z.B. COM1, zweite Zahl = Übertragungsrate
    15. char h_str [10];
    16. h_str [1] = 'H';
    17. h_str [2] = 'A';
    18. h_str [3] = 'L';
    19. h_str [4] = 'L';
    20. h_str [5] = 'O';
    21. COMPort.SendData(h_str, sizeof(h_str)); // SendData( Daten die gesendet werden sollen, größe der Daten) beispiel SendData(h_str,2) Sendet die ersten beiden FElder von h_str
    22. //printf("%s",h_str);
    23. //getchar();
    24. COMPort.Close();
    25. return EXIT_SUCCESS;
    26. }
    Alles anzeigen
  • cool hast ja sogar ne Klasse gefunden - die ist von da nech ?
    codeguru.com/cpp/i-n/network/s…cations/article.php/c2503

    Also hier erklärt einer ein bissel:
    franksteinberg.de/progss.htm
    und
    franksteinberg.de/erel.htm

    [Bemerkung: Bei der parallelen Schnittstelle]
    Der Witz ist, dass die Bytes immer nur als kurze Signale geschlossen abgefeuert werden, d.h. man muss wohl auf der ähm selbstgebastelten Platine zumindest ne Art Schalter haben, um überhaupt eine langfristige Wirkung zu erzielen. Wobei ich glaube auch schon gesehen hab, dass man permanent das gleiche Signale rausschicken kann und das LED dann trotz permanentem an/aus ganz normal glimmt.

    Kommt jetzt auf die Anwendung an, was schwebt Dir so vor - für viele häufig genutzte Sachen gibts ja Bausätze :-/

    Achso Bytes lesen - ja Arschkarte, man muss permanent lesen also schön evtl. noch mit Millisekunden Pause dazwischen die Signale abgreifen - da böte es sich an, diese Klasse/Routine als Thread irgendwie zu programmieren - das kann ungeil werden, soweit ich weiß.
    [/Bemerkung]

    Man sollte sich noch ausmalen, dass man "normale" Hardware mit sonem Programm nicht bedienen kann, da werden ganz spezielle Code-Abfolgen meist genutzt, meist binär - in gewissen Geräten kann man sogar Ascii-Befehle halt Byte für Byte durchsenden - das ist eine der einfachsten Kommunikationsmöglichkeiten, die es gibt ... wenngleich nicht die Schnellste.

    Oh ich seh grad - es gibt ja nen Unterschied zwischen serieller und paralleler Schnittstelle :D
    Kann mir kaum vorstellen, dass die Serielle einfacher ist, als die Parallele - zumindest für den Bausatz dann, war beim C64 schon so, dass die Parallele recht easy belegt war. Demzufolge kann man davon ausgehen, einen vorgefertigten Bausatz nutzen zu müssen, ausser man hat grad seine "gelangweiltes Genie" Phase

    Edit:
    Krass, die sagen echt zu ner 40-Euro-Relais Karte "billig"
    loetstelle.net/praxis/seriellport/seriell.php

    Edit 1000:
    Aufm Unixboard seh ich grad meine Aussage von ganz oben
    Ich kenne kein Tutorium. Unter Linux ist die Schnittstelle eine einfache Datei, die Du mit fopen("/dev/ttyS0", "rw") oeffnen kannst und dann mit fscanf und fprintf bearbeiten.


    dort steht auch ein netter Link wieder drin.
    wiki.atrox.at/index.php/Serielle_Schnittstelle

    hier nochn Link zur Programmierung
    zeiner.at/c/serialport.html

    Naja es gibt ja auch fix und fertige Sachen, wie sowas da für USB in dem Fall:
    conrad.de/goto.php?artikel=191003
    muss man weder löten, noch kompliziert proggen (wenn das mit der DLL funktioniert ...)

    ich seh grad: AVR, das is dochn Markenname für Mikrocontroller *wie ich grad las*

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von zyklo ()