#include #include #include #include #include //#include #include #include //#include #include "uart.h" #include "ir60.h" //********************************************************************************************** //Sie handeln auf eigene Gefahr! //Bei diesen Daten handelt es sich um Beispielanwendungen die nicht für den produktiven //Einsatz geeignet sind. //Pollin Electronic gibt keine Garantien irgendeiner Art, weder ausdrücklich //noch implizit, einschließlich unbegrenzt aller Garantien der Verwendbarkeit //dieser Daten für einen bezeichneten oder nicht bezeichneten Zweck. //Pollin Electronic ist nicht haftbar für jedwede Folgeschäden die aufgrund //der Benutzung dieser Daten entstehen. Dies gilt auch dann, wenn //Pollin Electronic von der Möglichkeit eines solchen Schadens unterrichtet worden ist. //********************************************************************************************** //Programm um empfangene IR-Signale im IR60-Format auszuwerten und dementsprechend //Relais zu schalten. //Verwendet wird das Zählerregister von Timer1, allerdings ohne Interrupt und zusätzlich //der Interrupt für INT0 zur Flankenerkennung. //Die empfangenen Daten werden über die serielle Schnittstelle zeitgleich ausgegeben, es //werden alle Daten ausgegeben, auch wenn kein Schaltvorgang erfolgt, um das Modul universell //einsetzen zu können. Wenn die Taste der FB gedrückt gehalten wird, // //ATTiny2313 //int. 8 Mhz // //********************************************************************************************** //*************************************************************************** //Hauptprogramm //*************************************************************************** char Data=0; char BitMask=0; int main (void) { Data = 0; // empfangenen IR60-Daten BitMask = 0; // Maske für die 8 Relais //char debug[5]; // Variable zur Debug-Ausgabe über UART //debug[0] = '\0'; uartInit(); // UART initialisieren IR60Init(); // IR60 Erkennung initialisieren DDRB = 0xFF; // PortB komplett als Ausgang (8 Relais) //************************************************************************* DDRD |= (1<>= 4; //Bit über PD3 legen PORTD ^= BitMask; //*********************************************************** //Bitmaske wieder auf 0 BitMask = 0; } } }