Hallo
Bin ich zu schnell oder zu langsam? *kopfkratz*
Wie oben schon als Edit eingefügt, das
{
UCSRB = 0;
OCR2 = 0xFE;
am Anfang der Endlosschleife überschreibt den OCR2-Wert von OCR2 = newocr2; Ich denke, das war letzlich auch dein Problem
Gruß
mic
Hallo radbruch,
ich habe gerade festgestellt, das bei jedem neuen Durchgang der while schleife OCR2 wieder auf 0xFE gesetzt wird, das macht doch keinen Sinn oder ?
Wenn Daten per SerPrint auf die Reise geschickt werden wird doch OCR2 auf 0x91 gestellt, damit ist doch mein mittels Schalter eingestellte Pulsdauer auf 50/50 und ich muss nach dem Senden wieder auf meine Pulsweite gehen ist doch die gleiche IR LED oder ?
Wolli![]()
Hallo
Bin ich zu schnell oder zu langsam? *kopfkratz*
Wie oben schon als Edit eingefügt, das
{
UCSRB = 0;
OCR2 = 0xFE;
am Anfang der Endlosschleife überschreibt den OCR2-Wert von OCR2 = newocr2; Ich denke, das war letzlich auch dein Problem
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo radbruch,
ich habs gefunden, das Beispiel setzt die Pulsweite am Schleifenanfang immer wieder auf 0xFE (meine Nadelpulse) wodurch auch nach einem Schalterwechsel keine neue Pulsweite sichtbar ist.
D A N K E an alle ich habe jetzt auch eine Abstandsdetection wie ich es brauche.
WolliK![]()
![]()
P.S. Am Besten selbst die grauen Zellen benutzen wenn die Codebeispiele nicht das machen was sie versprechen.
Hallo
Na dann, Glückwunsch und viel Spaß damit. Die IR-Abstandsmessung ist für den asuro deutlich schonender als die Kollisionserkennung mit den Tastern.
Das hätten wir wohl auch einfacher haben können. Eine Schilderung des Problems zusammen mit dem Programm hätte uns die Raterei erspart. Aber egal, Hauptsache es läuft :)
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
@ Waste
gibt es eine moeglichkeit die IR-Erkennung auf einen "Yeti" zu transferierern ?
Mir erscheint das eleganter als mit Ultraschall. Zumal schon alle Bauelemente vorhanden sind.
Gib/gebt mal nen Nwecomer einen Tip...
Gruss Asko
Hallo
Der yeti kann das auch. Der Schaltplan im Bereich der IR-Bauteile ist nahezu identisch (yeti mit R4 sogar besser ;) StatusLEDs sind ebenfalls identisch. Du brauchst nur das Timer2-Setup aus der Funktion Init() des asuro in die Initfunktion deiner yeti-Library kopieren:
(Initialisiung Timer2 nach Waste: https://www.roboternetz.de/community...achmentid=3132)Code://-------- seriell interface programmed in boot routine and already running ------- // prepare 36kHz for IR - Communication TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20); OCR2 = 0x91; // duty cycle for 36kHz TIMSK |= (1 << TOIE2); // 36kHz counter for sleep
Leider kenne ich die yeti-Library nicht und weiß deshalb nicht, ob er Timer beim yeti schon mit 36kHz läuft. Kann man die yeti-Library irgendwo runterladen? Dann könnte ich die Änderungen reinfummeln...
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hall radbruch
Sei mir nicht boese, wenn ich jetzt nicht weiss, welche Library Du meinst ..(yeti.c, yeti.h......?????)
Der timer muesste von Hause aus mit 36kHz laufen, denn wie sollte ich sonst eine IR-Kommunikation mit ersatzProzessor ohne Bootloader hinbekommen.
Ich dachte auch, das Teile des Bootloaders genutzt werden, aber es geht ja auch ohne.
Also muss die ganze Routine nach dem Bootloader neu aufgebaut werden. (schade um den Speicherplatz)
Ich werde mal weiter beide Treads verfolgen, vielleicht werde ich ja schlauer...
Hoffentlich komm ich nicht wieder vom Wege ab, sprich komme vom hundertsten ins tausende.
Gruss Asko.
Hallo
yeti.h und yeti.c sind die yeti-Library, entsprechend asuro.h und asuro.c für den asuro.
36 oder 72kHz? Die IR-Led wird immer mit 36kHz angesteuert. Bei der alten asuro-Lib wurde dazu der Timer mit 72kHz betrieben, nach jedem Timerdurchlauf wurde die Led umgeschaltet. Die Änderung von Waste war der Umstieg auf den PWM-Mode des Timers. Dadurch wurde ein zweimaliges Umschalten der IR-Led innerhalb nur eines Timerdurchlaufs möglich. Der Timer läuft deshalb nur mit 36kHz und ich vermute, weil ich die yeti-Lib nicht kenne, dieses neue Timersetup wird auch beim Yeti verwendet. Der Unterschied im Timertakt macht sich nur bemerkbar, wenn man die Sleep()-Funktionen des asuro verwendet.
Nicht wirklich. Das Setup für Timer2 und USART erledigt der Bootloader und bräuchte deshalb nicht nochmals durch das Programm gesetzt werden.Also muss die ganze Routine nach dem Bootloader neu aufgebaut werden.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen