Hallo ich beim Mikrocontroller COM1A0 aktiviert. Damit soll er beim Clear Timer on Compare Match den Pin toggeln. Gibt es eine Möglichkeit außer den Interrupt die Takte zu zählen? MfG
Hi >ich beim Mikrocontroller COM1A0 aktiviert. Damit soll er beim Clear >Timer on Compare Match den Pin toggeln. >Gibt es eine Möglichkeit außer den Interrupt die Takte zu zählen? ???? Schreibe das bitte noch einmal ins Reine. MfG Spess
Ich habe beim Mikrocontroller COM1A0 aktiviert damit er einen Takt erzeugt und den Steppmotor antreibt. Wenn Clear Timer on Compare Match ausgelöst wird soll es den Pin toggeln damit der Steppmotor in Bewegung kommt. Das funktioniert soweit. Das Problem ist, dass ich gerne wüßte wo sich der Motor auf der x-Achse befindet. Da soll er einfach die um 1 erhöhen wenn es die positive Flanke auslöst. Das wäre mit einem Interrupt möglich. Ich versuche aber den Interrupt zu vermeiden und eine andere Lösung zu finden da ich mit uCos verwende. Beim uCos habe ich gehört dass man den Interrupt irgendwie in Assembler programmieren muss. Deswegen versuche ich den Interrupt zu vermeiden.
Mach doch einfach den Takt mit Timer0. Dann toggelste den Pin von Timer0 und benutzt den für die Stepper Clock (also geschwindigkeit). Nun verbindest du noch diesen Pin mit der Input Clock von Timer1 und schon steht in Timer1 Zählregister die Position (Ist position). Die Sollposition kannst du ins Output Compareregister von Timer1 reinschreiben und den Outputcompare Pin von Timer1 als Enable oder Stromabsenkunk für den Schrittmotortreiber benutzen. UND ALLES OHNE SOFTWARE wird alles in Hardware erledigt. wenn du da noch nen PLD zwischen machst kannst du auch noch Hardwareendschalter und so mit reinmachen.
Danke für die Tipps. Gibt es aber eine SW-Lösung, dann müßte ich das Board nicht neu designen.
Hi >Ich versuche aber den Interrupt zu vermeiden und eine andere Lösung zu >finden da ich mit uCos verwende. Warum? Einfach im Interrupt nachsehen, welchen Pegel dein Taktpin hat und bei H zählen. Fertig. MfG Spess
juhuuuu schrieb: > Beim uCos habe ich gehört dass man den Interrupt irgendwie in Assembler > programmieren muss. Wenn das stimmt, dann ist das ein Grund warum ich uCos noch nicht einmal ansehen würde. Ohen Interrupts verschenkst du massenhaft Möglichkeiten deines µC. Aber eigentlich werden derartige 'Betriebssysteme' sowieso überschätzt. Es gibt nur wenige Dinge, wo sie einem tatsächlich das Leben einfacher machen. Meistens ist man mit der klassischen µC-Programmier-Architektur bzw. einer State-Maschine, in der selbstverstädnlich auch Interrupts eine Rolle spielen, ausreichend gut bedient, so dass man ein Bestriebssytem nicht wirklich vermisst. Einfach ein wenig Selbstdisziplin und dann geht das schon.
>>Ich versuche aber den Interrupt zu vermeiden und eine andere Lösung zu >>finden da ich mit uCos verwende. >Warum? Einfach im Interrupt nachsehen, welchen Pegel dein Taktpin hat >und bei H zählen. Fertig. Hast du eine Idee wie man im uCOS Interrupts aktiviert.
Hi
>Hast du eine Idee wie man im uCOS Interrupts aktiviert.
Nein. Nur in Assembler.
MfG Spess
>Aber eigentlich werden derartige 'Betriebssysteme' sowieso überschätzt.
Ein 'Betriebssystem' ist auch nur ein Sammlung von Funktionen (C oder
ASM), die aufgerufen werden können. Die kann man ja genauso auch
programmieren.
Aber: Der Scheduler ist manchmal der Knackpunkt! Und der ist (meistens)
nicht als einfache Funktion zu programmieren.
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.