Forum: Mikrocontroller und Digitale Elektronik Teensy 3.6: Timer Capture & Compare Register Header


von Burkhard (Gast)


Lesenswert?

Ich möchte auf einem Teensy 3.6 gerne etwas ähnliches implementieren wie 
hier beschrieben: 
https://www.zachpoff.com/resources/arduino-bat-simulator  (TCCR 
gesteuerte PWM-Erzeugung auf dem Arduino).

Allerdings finde ich in Teensyduino die Definition für 
TCCR/OCR1/COM[01]/TCNT1 etc. nicht. Ich kann sehen, dass diese Register 
in FreqCounter.h oder TimerOne.h referenziert werden - finde aber kein 
passendes Headerfile für meinen Sketch:
1
Arduino: 1.8.13 (Linux), TD: 1.53, Board: "Teensy 3.6, Serial, 180 MHz, Faster, US English"
2
3
error: 'TCCR1A' was not declared in this scope
4
   TCCR1A = 0;//registers for timer 1
5
   ^
6
 error: 'TCCR1B' was not declared in this scope
7
   TCCR1B = 0;
8
   ^
9
error: 'TCNT1' was not declared in this scope
10
   TCNT1=0;
11
   ^
12
In file included from /opt/arduino-1.8.13/hardware/teensy/avr/cores/teensy3/wiring.h:39:0,
13
                 from /opt/arduino-1.8.13/hardware/teensy/avr/cores/teensy3/WProgram.h:45,
14
                 from /tmp/arduino_build_464072/pch/Arduino.h:6:
15
zachpoffs-bat-simulator/zachpoffs-bat-simulator.ino:75:17: error: 'COM1A0' was not declared in this scope
16
   TCCR1A |= _BV(COM1A0) + _BV(COM1B0);
17
                 ^

usw. usw. Hätte jemand einen Tipp für mich?

von Oliver S. (oliverso)


Lesenswert?

Burkhard schrieb:
> usw. usw. Hätte jemand einen Tipp für mich?

Ein paar Buchstaben können einen großen Unterschied ausmachen.

Arduino = AVR, Tennsy 3.6 = ARM

Eine für einen AVR geschriebene Software läuft nunmal überhaupt nicht 
auf einem ARM. Da hilft auch kein Headerfile, da hilft nur verstehen und 
neu schreiben.

Oliver

von leo (Gast)


Lesenswert?

Oliver S. schrieb:
> Eine für einen AVR geschriebene Software läuft nunmal überhaupt nicht
> auf einem ARM.

So ca., ja ob der TO
https://www.pjrc.com/teensy/teensyduino.html
verwendet, ist wohl unbekannt.

leo

von Burkhard (Gast)


Lesenswert?

leo schrieb:
> https://www.pjrc.com/teensy/teensyduino.html
> verwendet, ist wohl unbekannt

Steht im Eröffnungsbeitrag und kann dort gelesen werden - so man denn 
beim Lesen die Augen offen hält.

Oliver S. schrieb:
> Eine für einen AVR geschriebene Software läuft nunmal überhaupt nicht
> auf einem ARM.

Der Teensy-Code liegt im Pfad 
/opt/arduino-1.8.13/hardware/teensy/avr/cores/teensy3 - einen Pfad "arm" 
kennt Teensyduino nicht. Die Eingangs genanten Register werden gleich in 
mehreren Teensy Bibliotheken angesprochen. Selbstverständlich hat die 
K66 auch TCCR Register, Capture & Compare ist schon ewig kein 
Alleinstellungsmerkmal mehr. Aber danke für die freundlichen Beiträge.

von Oliver S. (oliverso)


Lesenswert?

Na, wenn du da so gut Bescheid weißt, warum fragst du dann noch.
Sag halt Bescheid, wenn du die Register in deinem teensy gefunden hast, 
oder einen passenden Header, der das Problem löst.

Bis dahin läuft das eher unter planlosem Copy-Paste-Gebastel.

Oliver

von Burkhard K. (buks)


Lesenswert?

Burkhard schrieb:
> Hätte jemand einen Tipp für mich?

Falls der TO noch mitliest: https://github.com/PaulStoffregen/TimerOne 
abstrahiert den Zugriff auf die Timer1 Register für alle möglichen in 
Teensy-Boards verbauten Controller - AVR und ARM.

N.B.: Bei der Kinetis K66 (Teensy 3.6) heissen die entsprechenden Pins 
wohl FTM1 - nicht TCCR1. HTH.

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.