Hallo,
Bei meinem Programm geht es darum, vier Schrittmotoren mit
unterschiedlichen Frequenzen anzusteuern.
Die generierung der Frequenzen ist ausgearbeitet und funktioniert.
Bisher jedoch muss man die HEX-Zahlen für TH0 und TL0 von Hand eingeben.
Möchte aber, dass die abhängig von einer bestimmten variablen sind, so
dass ich für jeden Schrittmotor eine andere Frequenz erhalte und diese
darüber regeln kann.
>> ich erhalte eine Hex-Zahl z.B. d0fc, welche ich jedoch für TH0 und TL0 in 0xdc
und 0xfc aufteilen muss. kann mir da jmd helfen. bzw. was für Möglichkeiten gibt
es?
Vielen Dank schon mal.
Hoffe ich habe mich genau genug ausgedrückt, ansonsten eben Rückfragen:)
Hi Den Low-Teil erhält man durch ein 'and' mit 0xFF und den H-Teil durch achtmaliges Rechtsschieben. MfG Spess
In C ist es vollkommen wurscht, ob Du Zahlen dezimal, hex oder octal hinschreibst. Da der Mensch aber Dezimalzahlen besser versteht, sollte man diese auch verwenden. Um nun einen 16-Bit Wert in 2*8-Bit zu splitten, gibts den Klassiker:
1 | low_byte = wert & 0xFF; |
2 | high_byte = (unsigned int)wert >> 8; |
Beim Timer ist zu beachten, daß man ihn vorher anhält. Sonst kann es zu einem Überlauf kommen, d.h. einem Fehler von 256. Weiterhin ist zu beachten, daß man ein Reload durch Addition zum Timer macht, wenn eine hohe Genauigkeit gefordert ist. Dadurch rechnet sich nämlich die Interrupteinsprungzeit, Register pushen usw. raus. Peter
vielen Dank, das war genau das was ich gesucht habe. kann mir auch jmd sagen, wie ich zwei unterschiedliche while-Schleifen gleichzeitig ablaufen lassen kann? denn bisher läuft nur diejenige ab, die in meinem Quelltext an erste Stelle steht. Warum?!
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.