INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
250µs-Timer für Arduino Due
19.11.2014, 16:32 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2014 16:42 von HaWe.)
Beitrag #1
250µs-Timer für Arduino Due
hallo,
kennt jemand Beispiel-Sketche, wie man Timer auf dem Due programmiert?
Ich habe nur die alten Codes für die IRQs mit den völlig unleserlichen und uverständlichen AVR-Codes wie

Code:
// (in setup()
  noInterrupts();
  TIMSK1 |= (1 << OCIE1A);
  TCCR1A = 0;            
  TCCR1B = (1 << WGM12) | (1 << CS11);
  OCR1A = 511;
  interrupts();
plus zugehöriger ISR
Code:
ISR(TIMER1_COMPA_vect) {  // read encoder values

  ISRab [ 0] <<= 2;
  ISRab [ 0] &= B00001100;
  ISRab [ 0] |= (digitalRead(pinenc0A) << 1) | digitalRead(pinenc0B);
  motenc[ 0] += schrittTab[ISRab[0]];           //

  ISRab [ 1] <<= 2;
  ISRab [ 1] &= B00001100;
  ISRab [ 1] |= (digitalRead(pinenc1A) << 1) | digitalRead(pinenc1B);
  motenc[ 1] += schrittTab[ISRab[1]];           //

  ISRab [ 2] <<= 2;
  ISRab [ 2] &= B00001100;
  ISRab [ 2] |= (digitalRead(pinenc2A) << 1) | digitalRead(pinenc2B);
  motenc[ 2] += schrittTab[ISRab[2]];           //

  ISRab [ 3] <<= 2;
  ISRab [ 3] &= B00001100;
  ISRab [ 3] |= (digitalRead(pinenc3A) << 1) | digitalRead(pinenc3B);
  motenc[ 3] += schrittTab[ISRab[3]];           //

  ISRab [ 4] <<= 2;
  ISRab [ 4] &= B00001100;
  ISRab [ 4] |= (digitalRead(pinenc4A) << 1) | digitalRead(pinenc4B);
  motenc[ 4] += schrittTab[ISRab[4]];           //

  ISRab [ 5] <<= 2;
  ISRab [ 5] &= B00001100;
  ISRab [ 5] |= (digitalRead(pinenc5A) << 1) | digitalRead(pinenc5B);
  motenc[ 5] += schrittTab[ISRab[5]];           //

}

Alles ziemlich verkorkst, aber funktioniert wenigstens.

Aber wie geht jetzt Auslesen von Quadratur-Encodern etc. in festen 200-250µs-Zeitabständen auf dem Due ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Timer lernen AnjinSan 14 744 26.06.2017 13:25
Letzter Beitrag: Tommy56
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 923 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Münzeinwurf mit Timer KBLc 11 706 26.04.2017 21:21
Letzter Beitrag: KBLc
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 1.159 15.04.2017 09:41
Letzter Beitrag: hotsystems
  Über drei Taster zwei externe Timer steuern Sidamo 23 1.236 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Countdown Timer Uwe1475 23 1.619 19.10.2016 18:33
Letzter Beitrag: Uwe1475
  (Mega) Timer 3 A, B & C Scheams 0 529 04.06.2016 17:09
Letzter Beitrag: Scheams
  Arduino MEGA2560 Timer PWM Einsteiger94 3 1.136 04.04.2016 10:38
Letzter Beitrag: RMR
  Timer Interrupt Anfängerprobleme Fox 4 975 05.03.2016 02:28
Letzter Beitrag: Fox
  OUTPUT bleibt HIGH und timer stopt nicht. Atwist 4 784 08.01.2016 11:02
Letzter Beitrag: Atwist

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste