Forum: Mikrocontroller und Digitale Elektronik Probleme Portierung der IR-Fernbedienung in Atmelstudio 7


von Klaus H. (Firma: privat) (klaus777)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich kämpfe gerade mit der Portierung der lernfähigen Fernbedienung im 
Atmelstudio 7

https://www.mikrocontroller.net/articles/DIY_Lernf%C3%A4hige_Fernbedienung_mit_IRMP

Das Projekt wurde im Atmelstudio 4 erstellt.
Laut WEB lässt sich das Projekt importieren, das habe ich versucht und 
hab nur Fehler geerntet.

Schritt 2, neues Projekt im Studio angelegt, die main.c umbenannt und 
den Source eingefügt.

Die F_CPU in den Symbols definiert.
Im Projekt-Explorer habe ich die Headerfiles hinzugefügt.
Beim Erstellen hagelt es Fehler.
1
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe" -o remotecontrol.elf  remotecontrol.o   -Wl,-Map="remotecontrol.map" -Wl,--start-group -Wl,-lm  -Wl,--end-group -Wl,--gc-sections -mmcu=atmega168 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.6.364\gcc\dev\atmega168"  
2
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\Debug\Makefile(106,1): error: recipe for target 'remotecontrol.elf' failed
3
    remotecontrol.o: In function `__vector_11':
4
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(656,1): error: undefined reference to `irsnd_ISR'
5
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(656,1): error: undefined reference to `irmp_ISR'
6
    remotecontrol.o: In function `send_key':
7
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(703,1): error: undefined reference to `irsnd_send_data'
8
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(705,1): error: undefined reference to `irsnd_is_busy'
9
    remotecontrol.o: In function `main':
10
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(736,1): error: undefined reference to `irmp_init'
11
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(737,1): error: undefined reference to `irsnd_init'
12
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(738,1): error: undefined reference to `irsnd_set_callback_ptr'
13
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(796,1): error: undefined reference to `irmp_get_data'
14
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(808,1): error: undefined reference to `irmp_get_data'
15
F:\Atmel\Studio\IR\remotecontrol\remotecontrol\remotecontrol.c(849,1): error: undefined reference to `irmp_get_data'
Nach stundenlanger Suche und Nachfragen bei anderen...
Kann mir einer hier helfen?

Ich hab die Fehler auch nur in diesem Projekt, andere Projekte laufen 
tadellos.
Grüße Klaus

: Bearbeitet durch Moderator
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Sieht komisch aus. Bei mir lief das problemlos, siehe Anhang.

von Falk B. (falk)


Lesenswert?

Hast du irgendwie da zwei Projekt zusammengerührt? Denn IRMP ist der 
Empfänger, irsnd der Sender.

von Klaus H. (Firma: privat) (klaus777)


Lesenswert?

Ja, da es eine lernbare Fernbedienung werden sollte ;-)

von Falk B. (falk)


Lesenswert?

Klaus H. schrieb:
> Ja, da es eine lernbare Fernbedienung werden sollte ;-)

Dann mach aber erstmal einen einfachen Schritt und compiliere nur IRMP. 
Dann geht es weiter. Es reicht NICHT, einfach die Quelltexte in ein 
Projekt zu schütten. Das kann vielleicht ChatGPT . . .

von Klaus H. (Firma: privat) (klaus777)


Lesenswert?

Hallo Falk,
ich habe das ganze auch noch separat probiert.
ein ganz winziges Projekt:
1
#include <avr/io.h>
2
#include "irmpconfig.h"
3
#include "irmp.h"
4
5
int main(void)
6
{
7
    /* Replace with your application code */
8
    irmp_init ();
9
    //irsnd_init();
10
    //irsnd_set_callback_ptr (led_callback);
11
    while (1) 
12
    {
13
    }
14
}
und das knallt auch schon.
Und wenn ich dein Projekt verwende:
1
    process_begin: CreateProcess(NULL, "C:\Program Files (x86)\WinAVR-20100110\bin\avr-gcc.exe" -x c -funsigned-char -funsigned-bitfields -DF_CPU=16000000UL "-IC:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -mmcu=atmega2560 -c -gdwarf-2 -std=gnu99 -MD -MP -MF irmp.d -MTirmp.d -MTirmp.o -o irmp.o .././irmp.c, ...) failed.
2
    make (e=2): Das System kann die angegebene Datei nicht finden.
3
    make: *** [irmp.o] Error 2
4
    make: *** Waiting for unfinished jobs....
5
    Building file: .././irmp-main-avr-uart.c
6
    Invoking: AVR/GNU C Compiler : 0.0.0
7
    process_begin: CreateProcess(NULL, "C:\Program Files (x86)\WinAVR-20100110\bin\avr-gcc.exe" -x c -funsigned-char -funsigned-bitfields -DF_CPU=16000000UL "-IC:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -mmcu=atmega2560 -c -gdwarf-2 -std=gnu99 -MD -MP -MF irmp-main-avr-uart.d -MTirmp-main-avr-uart.d -MTirmp-main-avr-uart.o -o irmp-main-avr-uart.o .././irmp-main-avr-uart.c, ...) failed.
8
    make (e=2): Das System kann die angegebene Datei nicht finden.
9
    make: *** [irmp-main-avr-uart.o] Error 2
10
    "C:\Program Files (x86)\WinAVR-20100110\bin\avr-gcc.exe"  -x c -funsigned-char -funsigned-bitfields -DF_CPU=16000000UL  -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall  -mmcu=atmega2560  -c -gdwarf-2 -std=gnu99 -MD -MP -MF "irmp-main-avr-uart.d" -MT"irmp-main-avr-uart.d" -MT"irmp-main-avr-uart.o"   -o "irmp-main-avr-uart.o" ".././irmp-main-avr-uart.c" 
11
F:\Atmel\Studio\IR\IRMP_MS\IRMP\default\Makefile(88,1): error: recipe for target 'irmp-main-avr-uart.o' failed
12
  Done executing task "RunCompilerTask" -- FAILED.

: Bearbeitet durch Moderator
von Wastl (hartundweichware)


Angehängte Dateien:

Lesenswert?

Ich versuche mal dem Herum-Ge-Eiere hier ein Ende zu setzen.

von Klaus H. (Firma: privat) (klaus777)


Lesenswert?

Hallo Wastl,

danke, das Projekt funktioniert.

Jetzt fang ich mal an die Unterschiede zu suchen.
Mich interessiert es ja doch schon, was ich falsch gemacht habe.

Grüße Klaus

von Wastl (hartundweichware)


Lesenswert?

Klaus H. schrieb:
> Mich interessiert es ja doch schon, was ich falsch gemacht habe.

Offensichtlich so ziemlich alles.

Nebenbei:

> im Atmelstudio 4

Nein. Sondern:  AVR Studio 4.xx

> Atmelstudio 7

Nein. Sondern:  Atmel Studio 7.xx

Spielt zwar keine grosse Rolle, im Hintergrund (Background)
aber doch ....

von Klaus H. (Firma: privat) (klaus777)


Lesenswert?

Hallo Wastl,
danke für die Tips.
ich werde das nächste mal die korrekten Bezeichnungen der einzelnen IDEs 
verwenden.
Ich habe die Files verglichen und nur marginale Unterschiede 
festgestellt, die bei der Übertragung in meinen Versuch auch keine 
Besserung brachten.
Kannst du mir und all denen die mal vor dem gleichen Problem stehen, die 
Lösung des Problems kund tun?

Danke und Grüße Klaus

von Klaus H. (Firma: privat) (klaus777)


Lesenswert?

Wastl schrieb:
> Klaus H. schrieb:
>> Mich interessiert es ja doch schon, was ich falsch gemacht habe.
>
> Offensichtlich so ziemlich alles.
>
> Nebenbei:
>
>> im Atmelstudio 4
>
> Nein. Sondern:  AVR Studio 4.xx
>
>> Atmelstudio 7
>
> Nein. Sondern:  Atmel Studio 7.xx
>
> Spielt zwar keine grosse Rolle, im Hintergrund (Background)
> aber doch ....

Hallo Wastl,
wie soll man denn lernen wenn man keine Tipps bekommt, wo man den Fehler 
suchen kann?
Das Projekt zu liefern ist das eine, nur wollen wir hier alle lernen und 
besser werden.
Grüße Klaus

von A. B. (Firma: ab) (bus_eng)


Angehängte Dateien:

Lesenswert?

Habe im Anhang die Fehlermeldungen etwas anders formatiert.

Wenn ich mich richtig erinnere, müssen externe c-Sourcen eingebunden 
werden.

Im SolutionExplorer mit "Rechtsklick" auf das Projekt, "Add", "Existing 
Item" die externen c-Sourcen einfügen. Die Dateien werden dann unterhalb 
von main.c im SolutionExplorer gelistet.

Die Pfade zu den *.c und *.h müssen bekannt sein. Im SolutionExplorer 
mit "Rechtsklick" auf das Projekt, "Properties", "Toolchain", 
"Compiler", "Directories" in die Liste eintragen.

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.