Forum: Mikrocontroller und Digitale Elektronik Wie RC5 Code von Peter für Mega32 und TSOP1838 anpassen?


von Harald (Gast)


Lesenswert?

Hallo

ich möchte den RC5 Code ebenfalls verwenden.
Jedoch nutze ich einen Mega32 mit 16MHz und einem TSOP1838 mit 38kHz.

Was muss ich alles an dem Code anpassen damit überhaupt etwas empfangen 
wird.

in der main.h steht
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#define uchar unsigned char
4
#define uint unsigned int
5
6
#define  xRC5_IN    PINB
7
#define  xRC5    PB0      // IR input low active
8
9
10
extern volatile unsigned int  rc5_data;  // store result

in der main.h
1
#ifndef F_CPU
2
#define F_CPU           16000000                   // processor clock frequency
3
#endif
4
5
void init(void)
6
{
7
TCCR0 = (1<<CS01);  //Prescaler 8
8
TIMSK= (1<<TOIE0);
9
TCNT0 = 129;
10
11
12
DDRA= (1<<PA0)|(1<<PA3)|(1<<PA7);  // LED's
13
PORTB=(1<<PB0);            // RC5
14
}

und zuletzt meine Änderungen in der rc5.c
1
#include "main.h"
2
3
#define RC5TIME   1.778e-3    // 1.778msec
4
#define PULSE_MIN  (uchar)(F_CPU / 1016 * RC5TIME * 0.4 + 0.5)
5
#define PULSE_1_2  (uchar)(F_CPU / 1016 * RC5TIME * 0.8 + 0.5)
6
#define PULSE_MAX  (uchar)(F_CPU / 1016 * RC5TIME * 1.2 + 0.5)

ebenso wurden die für den Mega32 relevanten Registernamen angepasst.

Das Problem ist folgendes:
Ich habe mit einem Oszi gemessen ob der TSOP1838 ein Signal empfängt.
Ich erhalte bei jedem Tastendruck einen Puls.-> Empfang sollte 
funktionieren
Anschließend habe ich versucht, wenn was empfangen wurde die rc5_data an 
ein LCD auzugeben.
Allerdings kommt da nix an. -> ich gehe davon aus, das im Interupt nix 
passiert.

Würde mich über Hilfe freuen.

Gruß Harald

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.