- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: Fernbedienung einer TV - Karte weiterverwenden

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.11.2006
    Beiträge
    35

    Fernbedienung einer TV - Karte weiterverwenden

    Anzeige

    E-Bike
    Hallo.

    Habe letztens beim durchsehen meines "Altteile Lagers" die Fernbedienung und den Seriellen Empfänger meiner alten TV-Karte gefunden. Kann ich den Empfänger an meinen Mega 32 anschliessen und die Fernbedienung weiterverwenden?? Wenn ja wie? Über RS232 so wie es original vorgesehen war? Wie find ich heraus was für ein Signal gesendet wird wenn ich eine bestimmte Taste drücke? Gibts dazu irgendwo Infos? Die Karte war eine Pinnacle PCTV Pro.

    Thx im voraus,

    lg

    Bender

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.03.2007
    Beiträge
    176
    meine pinnacle und hauppauge produzieren astreinen RC5 Code, was nicht jede FB macht, dafür ist fertiger Code vorhanden, es genügt ein TSOP1738 und ein Atmel und die RC5 Lib von:

    http://www.mikrocontroller.net/topic/12216#new
    Code:
    /************************************************************************/
    /*                                                                      */
    /*                      RC5 Remote Receiver                             */
    /*                                                                      */
    /*              Author: Peter Dannegger                                 */
    /*                      danni@specs.de                                  */
    /*                                                                      */
    /************************************************************************/
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    #include <stdlib.h>
    
    #define uchar unsigned char
    #define uint unsigned int
    
    #define	xRC5_IN		PIND
    #define	xRC5		PD7			// IR input low active
    
    UWORD	rc5_data;				// store result
    
    #define RC5TIME 	1.778e-3				// 1.778msec
    #define PULSE_MIN	(uchar)(F_CPU / 512 * RC5TIME * 0.4 + 0.5)
    #define PULSE_1_2	(uchar)(F_CPU / 512 * RC5TIME * 0.8 + 0.5)
    #define PULSE_MAX	(uchar)(F_CPU / 512 * RC5TIME * 1.2 + 0.5)
    
    uchar	rc5_bit;				// bit value
    uchar	rc5_time;				// count bit time
    uint	rc5_tmp;				// shift bits in
    uint	rc5_data;				// store result
    
    SIGNAL (SIG_OVERFLOW0)
    {	uint tmp = rc5_tmp;			// for faster access
    
    	TCNT0 = -2;					// 2 * 256 = 512 cycle			// preload for 250µs RC5
    
      	if( ++rc5_time > PULSE_MAX )
    	{	// count pulse time
        	if( !(tmp & 0x4000) && tmp & 0x2000 )	// only if 14 bits received
    		rc5_data = tmp;
        	tmp = 0;
      	}
    
      	if( (rc5_bit ^ xRC5_IN) & 1<<xRC5 )
    	{	// change detect
        	rc5_bit = ~rc5_bit;						// 0x00 -> 0xFF -> 0x00
    
        	if( rc5_time < PULSE_MIN )				// to short
          		tmp = 0;
    
        	if( !tmp || rc5_time > PULSE_1_2 )
    		{	// start or long pulse time
          		if( !(tmp & 0x4000) )				// not to many bits
            		tmp <<= 1;						// shift
          		if( !(rc5_bit & 1<<xRC5) )			// inverted bit
            		tmp |= 1;						// insert new bit
          		rc5_time = 0;						// count next pulse time
        	}
      	}
      	rc5_tmp = tmp;
    }
    Edit by BASTIUniversal: Code-Box eingefügt.

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Dieser Code ist Klasse, obwohl ein kleiner Bug drinnen ist. Wenn du es nicht zum laufen bringst schaue ich dir nach was es war, ich glaube eine Initialisierung hat gefehlt.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    14.11.2006
    Beiträge
    35
    Hallo!

    Sorry das ich mich lange nicht gemeldet habe!! Hatte leider viel Stress... Thx für den Code, werde ihn ausprobieren wenn meine Platine wieder funktioniert. Hatte sie in ein Ferngesteuertes Auto eingebaut, aber nicht damit gerechnet das der Hund meines Nachbarn das Ding offensichtlich als Bedrohung gesehen hat. (Oder er wollte nur Spielen...) War leider nicht schnell genug um schlimmeres zu verhindern... Naja, dann eben auf ein neues... Habe vor mir eine neue Platine mit 2 Mega32@16Mhz zu bauen, LCD, I2C, RS232, Sprachmodul, IR,... Villeicht diesmal in ein Flugzeug, in der Luft gibts keine "Hundeangriffe"!

    Schöne Grüße aus Kärnten

    Bender_U22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen