Hallo,
ich muss für ein projekt Daten Schnell von einem AVR zu einem anderen AVR übertragen. Am schnellsten wäre das ja parallel (also mit 8Bit, jeder Pin ist entweder 0 oder 1), aber mir ist der bereich von -127 bis 128 zu klein, 10Bit wären da besser. Aber leider gibt es ja keinen Variablentyp mit 10Bit und wie kann ich das dann an 10Pins ausgeben?
Ich hoffe ihr versteht was ich meine, wenn nicht fragt nach
Geht eigentlich genauso.
Du gibst die 8 Bit aus und an 2 weiteren Ports noch 2 Bit. Wenn das Signal anliegt und gültig ist, setzt du deine Handshake-Leitung und der Partner kann die Werte lesen, was ganz analog geht.
Evtl ist auch SPI eine Alternative? Du kannst takten bis F_CPU/4 und um 8 Bits zu übertragen brauchst du also 32 Takte. Während der SPI am arbeiten ist, kannst du andere Aktionen machen wie zB neue Daten besorgen/Daten abspeichern, etc. so daß die effektive Übertragungsrate vielleicht darnicht mal schlechter ist als 10 Bit parallel.
Bei 10 Bit parallel muss der Master ja auch immer auf den Slave warten, die Speed geht also durch 2, während im SPI Master und Slave durch ein 16-Bit Schieberegister verbunden sind. Rechne einfach mal durch.
Disclaimer: none. Sue me.
Lesezeichen