Forum: Mikrocontroller und Digitale Elektronik Takte zählen


von juhuuuu (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von juhuuuu (Gast)


Lesenswert?

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.

von Uwe (Gast)


Lesenswert?

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.

von juhuuuu (Gast)


Lesenswert?

Danke für die Tipps. Gibt es aber eine SW-Lösung, dann müßte ich das 
Board nicht neu designen.

von spess53 (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von juhuuuu (Gast)


Lesenswert?

>>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.

von Karl H. (kbuchegg)


Lesenswert?

uCos Doku lesen?

von spess53 (Gast)


Lesenswert?

Hi

>Hast du eine Idee wie man im uCOS Interrupts aktiviert.

Nein. Nur in Assembler.

MfG Spess

von MCUA (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.