Hallo, ich möchte mit dem Mikrocontroller XC2267 von Infineon Division von 16Bit Werten realisieren. Folgende Kapitel im Datenblatt habe ich bereits durchgelesen: 4.8.3 Multiply and Divide Unit 4.9 DSP Data Processing (MAC Unit) 4.9.1 MAC Unit Control Mit den Registern MDH und MDL kann ich die 16Bit Werte einlesen. Wie kann ich nun im Mikrocontroller veranlassen, das dieser eine Division ausführen soll? In welchem Register steht die Adresse von der Berechnung drin ?
> XC2267 Ach du Scheisse, von Siemens-Bankern aufgeblasener 8051, den man nicht mehr C166 nennen will weil dann jeder wüsste welcher Schrott das ist. 8 bit Krüppel mit 32 bit Ballast. DIV Rw Signed divide register MDL by direct GPR (16-bit ÷ 16-bit) ist die passende Instruktion, (oder DIVU) aber warum verwendest du nicht C ? Es gibt einiges zu beachten, siehe Seite 40: http://www.keil.com/dd/docs/datashts/infineon/c166ism.pdf
Hallo Leo, wie sieht deine Entwicklungsumgebung aus? C mit Keil oder Tasking (Classic oder VX)? Oder doch Assembler? Ich frage, weil nur die VX-Toolchain von Tasking die MAC direkt unterstützt. Bei Keil und in der Classic muss man die per InlineAssembler, bzw Registerschreiben bearbeiten. So lange es nicht Zeitkritisch ist würde ich da lieber die Standardimplementation der Compiler nutzen. Aber um deine Frage zu beantworten, schau mal in das C166S V2 Core User's Manual (c166sv2um.pdf). Da stehen auch die Opcodes mit Input und Output Registern für die MAC mit drin. @MaWin: Leider war dein Hinweis für den alten Core. Und die 16Bitter haben auch noch ihre Berechtigung. Es gibt ein paar Dinge die man bei den Infineon Controllern wunderschön mit den Hardware-Units lösen kann und so ohne viele Rechenzeit auskommt. Gruß, TManiac
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.