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
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 585 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Münzeinwurf mit Timer KBLc 11 484 26.04.2017 21:21
Letzter Beitrag: KBLc
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 640 15.04.2017 09:41
Letzter Beitrag: hotsystems
  Über drei Taster zwei externe Timer steuern Sidamo 23 760 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Countdown Timer Uwe1475 23 1.243 19.10.2016 18:33
Letzter Beitrag: Uwe1475
  (Mega) Timer 3 A, B & C Scheams 0 389 04.06.2016 17:09
Letzter Beitrag: Scheams
  Arduino MEGA2560 Timer PWM Einsteiger94 3 933 04.04.2016 10:38
Letzter Beitrag: RMR
  Timer Interrupt Anfängerprobleme Fox 4 817 05.03.2016 02:28
Letzter Beitrag: Fox
  OUTPUT bleibt HIGH und timer stopt nicht. Atwist 4 655 08.01.2016 11:02
Letzter Beitrag: Atwist
  Timer inizialisieren Mathias 2 749 21.10.2015 21:24
Letzter Beitrag: Mathias

Gehe zu:


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