Wichtig ist nicht die Pin NR, sonder der Pin an dem der INTO oder INT1 ist. // damit es allgemein gehen soll.
du rufst mit der rc5_init (RC5_all) eine funktion aus rc5.c auf.
Wie und wo ist der Datenausgang des TSOP dran, an INTO oder INT1 ?
Beim Mega16 ist INTO an PD2, so wie TobiKa sagt. Am Mega 32 wohl auch, ( im Datenblatt nachschauen)
in dieser Zeile definierst du das :
#ifndef RC5_INT
#define RC5_INT RC5_INT0 // hier ist int0 der pin für den data_out des TSOP oder halt RC5_INT1 für den anderen
#endif /* RC5_INT */
Desweitern, wo definierst du den Tsop-Pin als Eingang ? z.b.
// Into pin auf Eingang stellen, hier PD2
DDRD &= ~(1<<PD2); // eingang
denn: Pin nicht als Eingang => auch kein Empfang am µC
falls du eine RC5 Fernbedienung hast , würde ich folgende Zeilen mal einfügen( und zwar da woe bei dir "FB Code senden! " steht:
// ach ps. wenn wir schon dabei sind, meide sonderzeichen auch im kommentar, gewöhn dir gar nicht erst an Sonderzeichen zu nutzen, also kein -> ! mehr
if(code == 32)
{
PORTB ^= (1<<PB0);
}
und an PB0 eine LED , denn drückst du nun die Program+ taste, so müßte die LED toggeln.
FCPU definiert im rc5.c und auch im makefile ? z.b.:
#define F_CPU 16000000UL
und im Makefile ( mit editor öffnen)
# MCU name
MCU = atmega16
#oder halt atmega32 für den mega 32
# Main Oscillator Frequency
# This is only used to define F_OSC in all assembler and c-sources.
F_OSC = 16000000
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
# Target file name (without extension).
TARGET = mega16
# oder wie deine .c-datei heißt wo die main-Schleife liegt, nur ohne .c drann
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c rc5.c
# hier werden alle .c-datein aufgelistet, ohne Komma dazwischen, nur eine Leertaste
so was in der Art,
das sind die wichtigsten Einstellungen die vorgenommen werden müßen damit es klappt, bei mir tut es![]()
Lesezeichen