- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 6 von 6

Thema: Rechenaufgabe (Datentransfer RS232 an PC)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137

    Rechenaufgabe (Datentransfer RS232 an PC)

    Anzeige

    Praxistest und DIY Projekte
    Soooo,

    Ich habe folgendes vor:

    Auf einem ATMEGA (16 MHz, 56k RS232) läuft ein Timer, der jede 0,1 ms bzw. 1,0 ms (je nach Einstellung) ein interrupt auslöst.

    Nach auslösen des interruptes werden zwei Eingänge überprüft, ob diese high oder low sind, und in zwei entsprechenden Arrays abgelegt.

    Nach 10 interrupts sollen die Daten über RS232 an eine Visual Basic applikation gesendet werden und dort weiterverarbeitet werden.

    Der Controller sendet also zB.

    10100000110101111000 an den PC

    die ersten 10 Zahlen ist der Zustand Eingang 1 je 0,1 bzw 1 ms und
    die letzten 10 Zahlen ist der Zustand Eingang 2 je 0,1 bzw 1 ms.

    Sprich der Controller sendet je Sekunde insgesamt 1000 (bei 0,1ms Takt, da ja immer 10 Ziffern geschickt werden) bzw. 100 (bei 1 ms Takt) Zeilen an den angeschlossenen PC.

    Die Frage ist nun, ob das ganze innerhalb von 1 bzw 10 ms übertragen werden kann, oder ob die serielle schnittstelle bzw. der Controller zu langsam dafür sind.)

    PS: Auf dem PC werden dann digitale "Wellen" (wie rechtecksignal beim Oszilloskop) in der visual basic software angezeigt. Damit will ich dann das Timing eines anderen ATMEGAs testen, ob die Impulse zur richtigen Zeit und in der richtigen länge kommen.

    Viele Grüsse

    Jan

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    bei RS232 werden je Byte 10 Bit geschickt. Mit etwas taktischer Reserve wird also bei 9600 Baud etwa 1 Byte in 1 mS geschickt.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137
    Zitat Zitat von PicNick
    bei RS232 werden je Byte 10 Bit geschickt. Mit etwas taktischer Reserve wird also bei 9600 Baud etwa 1 Byte in 1 mS geschickt.
    das klingt ja schonmal gut. Dann schaffe ich ja quasi in einer ms bei
    57600 baud 60 bits zu senden.

    Hmmm da ist die nächste Frage: wenn ich den Print-Befehl benutze,
    dann sendet der AVR doch ein String, der dann natürlich wesentlich länger ist?

    Wie kann ich Bascom sagen, das er die zahlen binärisch senden soll? Hat da jemand mal ein Codeschnippsel?

    Gruss & Vielen Dank schonmal

    Jan

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wenn das auch als Codeschnipsel gilt , isses mir recht
    Code:
    PRINTBIN  einbyte
    Ein byte pur, so wie's ist, ohne was vorn oder hinten
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137
    Hallo Robert

    Zitat Zitat von PicNick
    Wenn das auch als Codeschnipsel gilt , isses mir recht
    Code:
    PRINTBIN  einbyte
    Ein byte pur, so wie's ist, ohne was vorn oder hinten

    also kann ich praktisch jede ms

    printbin 1001010001 'Eingang 1
    printbin 1001010001 'Eingang 2

    senden ja?

    wieso eigentlich je byte, 10 bit? ein Byte doch doch normalerweise 8 bit...

    kommen die bits dann blockweise (also je byte) an, oder einzeln je bit?

    Viele Grüsse und vielen Dank

    Jan

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ein Startbit, 8 Daten-bit, ein Stopbit ----> 10 Bit
    Bei einem Draht müssen sich die Bits natürlich hintereinander durchquetschen, sonst gibt's Stau
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad