bei RS232 werden je Byte 10 Bit geschickt. Mit etwas taktischer Reserve wird also bei 9600 Baud etwa 1 Byte in 1 mS geschickt.
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
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.
das klingt ja schonmal gut. Dann schaffe ich ja quasi in einer ms beiZitat von PicNick
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
Wenn das auch als Codeschnipsel gilt , isses mir recht
Ein byte pur, so wie's ist, ohne was vorn oder hintenCode:PRINTBIN einbyte
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo Robert
Zitat von PicNick
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
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.
Lesezeichen