ich hab das ganze jetzt noch mal überdacht.
ich verwende ja die lib 2.8rc1. da ist ja schon der ir-detektor eingebunden.
nun erst mal ne frage: sind da schon die veränderungen von waste dabei?
wenn nicht, wie kann ich die einbauen, sodass ich die aktuelle lib nutzen kann und trotzdem der ir-detektor richtig funzt?
nun ist ja bei der lib auch ein ir-testprogramm dabei.
dieses hier
Code:/******************************************************************************* * * Description: Asuro IR-Detektor Testprogramm * *****************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * any later version. * ***************************************************************************/ #include "asuro.h" #include <stdlib.h> static unsigned char ocr2 = 0x91; void InitIRDetect(void) { UCSRB = 0; DDRD |= (1 << DDD1); // Port D1 als Ausgang PORTD &= ~(1 << PD1); // PD1 auf LOW OCR2 = ocr2; } void InitUart(void) { OCR2 = 0x91; // duty cycle fuer 36kHz } int main(void) { unsigned char sw; Init(); DDRD |= (1 << DDD1); // Port D1 als Ausgang PORTD &= ~(1 << PD1); // PD1 auf LOW // InitIRDetect(); while (1) { UCSRB = 0; OCR2 = 0xFE; if (PIND & (1 << PD0)) StatusLED(GREEN); else StatusLED(RED); sw = PollSwitch(); if (sw & 0x01) ocr2 = 0xFE; //Pulsbreite 1 if (sw & 0x02) ocr2 = 0xFD; //Pulsbreite 2 if (sw & 0x04) ocr2 = 0xFB; //Pulsbreite 4 if (sw & 0x08) ocr2 = 0xF7; //Pulsbreite 8 if (sw & 0x10) ocr2 = 0xEF; //Pulsbreite 16 if (sw & 0x20) ocr2 = 0x90; //Pulsbreite 110 if (sw) { OCR2 = 0x91; PrintInt(sw); SerPrint(" "); PrintInt(ocr2); SerPrint("\r\n"); } // Msleep(100); } return 0; }
das hab ich mal auf meinen asuro geflasht und getstet. man kann dort mit den tastern ja die pulsweite einstellen.
zuerst dachte ich, es würde gar nichts gehn, weil die status led immer grün war.
das einstellen der pulsweite ging. das konnte ich ja mithilfe meines transceivers feststellen, da asuro je nach tastendruck mir ja die pulsweite gesendet hat.
dass asuro was gesendet hat, hab ich auch mithilfe des transceivers feststellen können.
jedoch konnte ich machen was ich wollte, die status led blieb grün.
dann bin ich (mehr oder weniger durch zufall) ganz dich an meinen 45°-spiegel gekommen und siehe da: led rot!!!
also funktioniert es, es ist jedoch nicht empfindlich genug eingestellt.
das sollte man ja ansich mit den tastern machen können, aber ich hab - egal welche pulsweite ich verwendete - keine oder nur minimale veränderungen gemerkt. problem dabei: die objekterkennung erfolgt erst HINTER der platinenkante, also zu spät.
kann ich das mithilfe der OCR2-werte noch weiter tunen oder muss ich da noch was anderes beachten (wie z.b. die einstellugnen von waste, mit denen ich noch nicht so ganz klar komme)?!
wär toll, wenn mir wer helfen könnte. danke!![]()
Lesezeichen