Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Inkrementalgeber Kategorie: Programmierung C (von Bernd der Alte - 14.09.2006 11:41)
Als Antwort auf Re: Inkrementalgeber von ortwin - 4.09.2006 12:55
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
Hallo Stefan, Hallo Ihr alle.

Hier mein Drehgeber-Code für Handbedienung.
Der code erkennt vorwärts und rückwerts und zählt entsprechend mit.
Es werden zwei freie Ports genommen, hier Taste1 und Taste2.
je nach dem in welcher Reihenfolge es zur Pegeländerung kommt,
so ist die Drehrichtung.
Hier nun der Code:

//Diese Routine erkennt die Bewegungen eines Drehgebers
//zur Erfassung der Pegeländerungen

//------------------------------------------------------------------------------
// Drehgeber1
//
void Drehgeber1(void)
{
//int Drehgeber11, Drehgeber12;

if (Port_ReadBit(Taste2) == 0)
    {
    AbsDelay(100);                                          //da mechanisch: entprellen!!!
    if (Port_ReadBit(Taste2) == 0)
        {
        if  (Port_ReadBit(Taste1) == 0)
            {
            PegelM1++;                                       //hochzählen
            if(PegelM1>=38) PegelM1 = 38;           //Zählgrenze nach oben (39 Schritte)
            }
        else
            {
            PegelM1--;                                          //runterzählen
            if(PegelM1<=0) PegelM1 = 0;               //nicht kleiner als 0 werden
            }
        }
    }
}

Das ganze ist eine Unterprogramm, die Auswertung erfolgt in einem anderen Programmteil.

Ich hoffe ich konnte noch helfen.

GruÃ? Bernd der Alte



> Hallo Stefan,
>
> die Auswertung eines Drehgebers direkt mit dem Mega128 geht von Grundsatz her,
> hängt aber sehr stark davon ab wie schnell Deine Impulse vom Drehgeber kommen,
> und was Du mit dem Mega128 parallel sonst noch machen willst.
>
> Ich bin hier bei einer 3-Achsen Schrittmotorsteuerung mit Drehgebern und Bahninterpolation sehr
> schnell an die (zeitlichen) Grenzen des Mega128 gesto�en, da ich zusätzlich noch RS232 und
> Display und Tastenabfrage bedienen muÃ?te.
>
> Jehr nachdem wie ich meine Interrupts gelegt habe ist mal ein Drehgeberimpuls verlohren gegangen
> oder der Schrittmotor hat zu stottern angefangen.
>
> Wenn Du Dir viel Zeit und Nerven sparen willst guck mal auf die Seite www.trinamic.com
> Hier gibts Bausteine die zwar etwas Geld kosten, Dir aber die Impuszählerei komplett abnehmen,
> desweiteren auch noch die Impulse für den Schrittmotor bilden.
>
> Anzusprechen über SPI und teilweise über I2C
>
> gruÃ? ortwin
>
>


    Antwort schreiben


Antworten: