Gefunden für step bits byte - Zum Elektronik Forum |
| 1 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| |||
| 2 - VB6 - Bits in Bytes umrechnern -- VB6 - Bits in Bytes umrechnern | |||
| Moment mal.
Warum der Aufwand? Woher kommen die Daten als 0-1-String?? Welches Programm gibt denn sowas aus?? Die laufenden Zweierpotenzen sind zwar mathematisch völlig korrekt, ergeben aber in diesem Zusammenhang kaum Sinn. Dazu nimmt man besser reine Multiplikationen mit 2 (Schiebeoperation). Das 2^n ist mathematisch ja völlig richtig, bemüht aber intern Gleitpunktrechnung, was hier völlig überflüssig ist. Die "Umwandlung" von Byte in einen 1-0-String erfolgt analog. Mit UND kann herausgefunden werden, ob an einer bestimmten Stelle ein Bit gesetzt ist, im String wird dies mit einer "1" oder "0" bewertet und dann schiebt man alle Bits im Byte eine Stelle nach links oder rechts, je nach dem, welches Bit man abfragt. Beispiel: Byte input_byte String Bits Char(Bits, "0", 8 ) Byte i For i = 0 To 7 Step 1 If(input_byte And &H80) Then Mid(Bits, i, 1) = "1" ' * End If input_byte = input_byte * 2 End For Immer noch ein Wahnsinn an Ressourcenverbrauch, wenn man sich den erzeugten Maschinenkode anschauen würde. Mit Mid(Bits, i, 1) wird glaube ich das entsprechende Zeichen an der i-ten Stelle in den String geschri... | |||
3 - Ausführungszeit von Befehlen in BASCOM -- Ausführungszeit von Befehlen in BASCOM | |||
| Hallo zusammen. Um mein Problem zu beschreiben, zunächst was ich hier habe.
Mein ATMEGA8 steuert eine Reihe von Schieberegistern (CMOS 4094) an. Er ist mit 7,3728MHz getaktet. Das Schieben der Bits nehme ich von Hand vor, d.h. nicht mit SPI o.ä. sondern durch selbstständiges schalten der Ports. Das ganze ist als Ring aufgebaut, d.h. wenn ich Daten in die Schieberegister hineinschiebe, lese ich gleichzeitig an deren Ende die Daten wieder in den AVR ein. Alles funktioniert auch wie es soll und bei einem CMOS komme ich auf ~11000 Zyklen pro Sekunde. Komisch ist nun folgendes. Habe ich 2 CMOS dran, sind es nur noch ~ 5300 Zyklen und bei 3 noch ~4000 Zyklen. Das ist eindeutig zu wenig und ich wollte nun gerne bestimmen wo mir hier Zeit verloren geht. Ich programmiere in BASCOM und meine Frage ist: "Wie kann ich die Ausführungszeiten von Befehlen, bzw. Programmzeilen, messen. ODER: Bei was in BASCOM geht viel zeit verloren (Arrays, Funktionen etc.)?" Die angebotenen Timer (z.B. SysSec) beziehen sich nur auf Sekunden - was etwas zu langsam ist. hier noch der entsprechende Codeausschnitt: | |||
| 4 - 19" Gehäuse -- 19" Gehäuse | |||
| Z80 oder 8085 ist erstmal egal.
Es gab das System auch mit einem 880 Prozessor ( Z80 software-kompatibel, 8085 hardwarekompatibel) CP/M war damit möglich. Die Busverdrahtung und die Plastik-Führungsleisten waren dennoch die Gleichen. Ob nun 30 Jahre zu spät oder nicht ... Mit diesem System kann man die Bits und Bytes noch selber setzen und verstehen, was dahinter abläuft. (Mit Tasten und STEP Funktion). Vor 20 Jahren habe ich an diesem System meine Ausbildung absolviert. ... | |||
| 5 - Controller mit 12 oder 16Bit A/D -- Controller mit 12 oder 16Bit A/D | |||
Zitat : im nächsten Step werde ich wohl mal 24 Bit in Angriff nehmen Du solltest dir nur darüber klar sein, daß diese Sigma-Delta-Wandler recht langsam arbeiten, und daß du vielleicht nur 18 stabile Bits zu sehen bekommst. Der Rest ist Rauschen. ... |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 8 Beiträge im Durchschnitt pro Tag heute wurden bisher 7 Beiträge verfasst 7 Besucher in den letzten 60 Sekunden alle 8.57 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |