Xmega Encoder auslesen

OP #2647153
Hi,

ich lese die Encoder meines Motors über Events des Xmega aus.

char uart_buffer [33];
usart_sendstring(" TCC1.CNT ");

itoa(TCC1.CNT,uart_buffer,10);
usart_sendstring(uart_buffer);

in der Ausgabe werden Werte +-0 (zB -1000 // +1000..) angezeigt!
Wenn ich das ganze in der Schleife auswerten will

if(TCC1.CNT  > 3)
{
status = 1;
M_2.zur();
}



if(TCC1.CNT  < -3)
{
  status = -1;
  M_2.vor();
}


if(TCC1.CNT  >= -3 || TCC1.CNT  <= 3)
{
  status = 0;
  M_2.stop();
}


wird nur die erste Schleife ausgelöst. Woran liegt das? Wird TCC1.CNT in 
der Schleife zum Betrag,also immer positiv betrachtet?

Gruß
OP
geht leider doch nicht. ich hatte die Grenze bei 1000 und darum schwingt 
der Motor gut. Wenn die grenze jedoch bei 0 liegt, dann scheint
TCC1.CNT positiv zu werden, obwohl, es in der USART Ausgabe als negativ 
dargestellt wird.

da muss ich wohl die Richtung des Motor ermitteln und dann TCC1.CNT 
addieren bzw. subtrahieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.