Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
workshop:rf433ctl_workshop [2012-04-19 22:31] homunkoloss |
workshop:rf433ctl_workshop [2015-09-23 02:04] xro |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Teensy Workshop ====== | + | ====== Workshop: Mikrocontrollerprogrammierung mit teensy ====== |
+ | ====== Vorbereitung ====== | ||
+ | Es müssen folgende Pakete installiert werden: | ||
+ | <code>~ % sudo apt-get install subversion gcc-avr avr-libc build-essential \ | ||
+ | avrdude binutils-avr libusb-dev python-matplotlib</code> | ||
- | ====== hidrc ====== | + | Weiters ist es ratsam einen eigenen Ordner für den Workshop anzulegen. |
- | ====== Einrichtung ====== | + | <code> |
- | ===== Kommandos lernen ===== | + | |
- | <html><pre> | + | |
- | ~ % sudo apt-get install subversion gcc-avr avr-libc build-essential avrdude binutils-avr libusb-dev python-matplotlib | + | |
~ % mkdir teensy_workshop | ~ % mkdir teensy_workshop | ||
~ % cd teensy_workshop | ~ % cd teensy_workshop | ||
- | ~/teensy_workshop % svn checkout https://krypta.wirdorange.org/svn/hidrc/trunk hidrc | + | </code> |
- | A hidrc/usb_keyboard_debug.c | + | |
- | A hidrc/hid_listen | + | |
- | A hidrc/hid_listen/rawhid.c | + | |
- | A hidrc/hid_listen/gpl3.txt | + | |
- | A hidrc/hid_listen/hid_listen.c | + | |
- | A hidrc/hid_listen/rawhid.h | + | |
- | A hidrc/hid_listen/Makefile | + | |
- | A hidrc/print.h | + | |
- | A hidrc/teensy_loader_cli | + | |
- | A hidrc/teensy_loader_cli/gpl3.txt | + | |
- | A hidrc/teensy_loader_cli/Makefile.bsd | + | |
- | A hidrc/teensy_loader_cli/teensy_loader_cli.c | + | |
- | A hidrc/teensy_loader_cli/Makefile | + | |
- | A hidrc/usb_keyboard_debug.h | + | |
- | A hidrc/keymap_example.h | + | |
- | A hidrc/udev-rules | + | |
- | A hidrc/udev-rules/49-teensy.rules | + | |
- | A hidrc/example.c | + | |
- | A hidrc/Makefile | + | |
- | A hidrc/print.c | + | |
- | U hidrc | + | |
- | Ausgecheckt, Revision 16. | + | |
- | ~/teensy_workshop % cd hidrc | + | |
- | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make | + | |
- | -------- begin -------- | + | ====== hidrc ====== |
- | avr-gcc (GCC) 4.3.5 | + | Mit hidrc kann man einen Linux-PC mit NEC-Fernbedienungen fernsteuern. Andere Protokolle wie RC5 oder RC6 werden derzeit nicht unterstützt. |
- | Copyright (C) 2008 Free Software Foundation, Inc. | + | |
- | Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es | + | |
- | gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. | + | |
+ | ===== Benötigte Bauteile ===== | ||
+ | * Teensy | ||
+ | * TSOP1838 | ||
- | Compiling C: example.c | + | ==== Pinbelegung ==== |
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o | + | TSOP1838: |
- | example.c:38:20: Fehler: keymap.h: Datei oder Verzeichnis nicht gefunden | + | D3: Data |
- | example.c: In Funktion »__vector_23«: | + | Gesamter Port D ist als Input konfiguriert. |
- | example.c:110: Fehler: »mapping« nicht deklariert (erste Benutzung in dieser Funktion) | + | PC7 = VCC |
- | example.c:110: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt | + | PC6 = GND |
- | example.c:110: Fehler: für jede Funktion in der er auftritt.) | + | |
- | make: *** [example.o] Fehler 1 | + | |
- | 2 ~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h | + | |
- | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make | + | |
- | -------- begin -------- | + | Ansicht von vorne (Runde empfänger Teil sichtbar) |
- | avr-gcc (GCC) 4.3.5 | + | <html><pre> |
- | Copyright (C) 2008 Free Software Foundation, Inc. | + | _________ |
- | Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es | + | | | |
- | gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. | + | | O | |
+ | | | | ||
+ | --------- | ||
+ | | | | | ||
+ | | | | | ||
+ | D Gnd Vcc | ||
+ | </pre></html> | ||
+ | ==== Quellcode herunterladen ==== | ||
+ | <html><pre> | ||
+ | ~/teensy_workshop % svn checkout https://krypta.wirdorange.org/svn/hidrc/trunk hidrc | ||
+ | ~/teensy_workshop % cd hidrc | ||
+ | </pre></html> | ||
- | Compiling C: example.c | + | ==== hidrc kompilieren ==== |
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o | + | <html><pre> |
- | + | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h | |
- | Compiling C: usb_keyboard_debug.c | + | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make |
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./usb_keyboard_debug.lst -std=gnu99 -MMD -MP -MF .dep/usb_keyboard_debug.o.d usb_keyboard_debug.c -o usb_keyboard_debug.o | + | |
- | + | ||
- | Compiling C: print.c | + | |
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./print.lst -std=gnu99 -MMD -MP -MF .dep/print.o.d print.c -o print.o | + | |
- | + | ||
- | Linking: example.elf | + | |
- | avr-gcc -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=example.o -std=gnu99 -MMD -MP -MF .dep/example.elf.d example.o usb_keyboard_debug.o print.o --output example.elf -Wl,-Map=example.map,--cref -Wl,--relax -Wl,--gc-sections -lm | + | |
- | + | ||
- | Creating load file for Flash: example.hex | + | |
- | avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature example.elf example.hex | + | |
- | + | ||
- | Creating load file for EEPROM: example.eep | + | |
- | avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ | + | |
- | --change-section-lma .eeprom=0 --no-change-warnings -O ihex example.elf example.eep || exit 0 | + | |
- | + | ||
- | Creating Extended Listing: example.lss | + | |
- | avr-objdump -h -S -z example.elf > example.lss | + | |
- | + | ||
- | Creating Symbol Table: example.sym | + | |
- | avr-nm -n example.elf > example.sym | + | |
- | + | ||
- | Size after: | + | |
- | text data bss dec hex filename | + | |
- | 2600 34 26 2660 a64 example.elf | + | |
- | + | ||
- | -------- end -------- | + | |
~/teensy_workshop/hidrc (svn)-[trunk:16] % cd teensy_loader_cli | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd teensy_loader_cli | ||
- | ...eensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % make | + | ~/teensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % make |
- | cc -O2 -Wall -s -DUSE_LIBUSB -o teensy_loader_cli teensy_loader_cli.c -lusb | + | ~/teensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % cd ../hid_listen |
- | ...eensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % cd .. | + | |
- | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen | + | |
~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % make | ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % make | ||
- | gcc -O2 -Wall -DLINUX -c -o hid_listen.o hid_listen.c | + | </pre></html> |
- | gcc -O2 -Wall -DLINUX -c -o rawhid.o rawhid.c | + | |
- | rawhid.c:53:45: warning: assertions are a deprecated extension | + | ==== udev-Regel kopieren ==== |
- | gcc -o hid_listen hid_listen.o rawhid.o | + | <html><pre> |
- | strip hid_listen | + | |
~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % cd .. | ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % cd .. | ||
~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo cp udev-rules/49-teensy.rules /etc/udev/rules.d/49-teensy.rules | ~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo cp udev-rules/49-teensy.rules /etc/udev/rules.d/49-teensy.rules | ||
~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo /etc/init.d/udev reload | ~/teensy_workshop/hidrc (svn)-[trunk:16] % sudo /etc/init.d/udev reload | ||
- | Rather than invoking init scripts through /etc/init.d, use the service(8) | + | </pre></html> |
- | utility, e.g. service udev reload | + | |
- | Since the script you are attempting to invoke has been converted to an | + | ==== Programm auf teensy brennen ==== |
- | Upstart job, you may also use the reload(8) utility, e.g. reload udev | + | <html><pre> |
~/teensy_workshop/hidrc (svn)-[trunk:16] % make program | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make program | ||
- | ./teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex | + | </pre></html> |
+ | |||
+ | ==== Kommandos lernen ==== | ||
+ | <html><pre> | ||
~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen | ||
~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % ./hid_listen | ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % ./hid_listen | ||
Line 123: | Line 79: | ||
^C | ^C | ||
130 ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % vim ../keymap.h | 130 ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % vim ../keymap.h | ||
+ | </pre></html> | ||
+ | |||
+ | === Keycode eintragen === | ||
+ | Den vorher ausgelesenen Wert (hier 722EEDD1) trägt man in die Datei /hid_listen/keymap.h ein. | ||
- | Keycode eintragen | ||
722EEDD1 -> 0x72,0x2E,0xED,0xD1 | 722EEDD1 -> 0x72,0x2E,0xED,0xD1 | ||
0x72,0x2E,0xED,0xD1,//Key//, //Modifier//, | 0x72,0x2E,0xED,0xD1,//Key//, //Modifier//, | ||
+ | |||
z.B.: 0x72,0x2E,0xED,0xD1, KEY_DELETE, KEY_ALT | KEY_CTRL, | z.B.: 0x72,0x2E,0xED,0xD1, KEY_DELETE, KEY_ALT | KEY_CTRL, | ||
+ | |||
Gültige Werte für //Key// und //Modifier// stehen in der Datei **usb_keyboard_debug.h** | Gültige Werte für //Key// und //Modifier// stehen in der Datei **usb_keyboard_debug.h** | ||
- | </pre></html> | ||
- | |||
- | ==== Pinbelegung ==== | ||
- | |||
- | TSOP1838: | ||
- | D3: Data | ||
- | Gesamter Port D ist als Input konfiguriert. | ||
- | PC7 = VCC | ||
- | PC6 = GND | ||
- | |||
- | Ansicht von vorne (Runde empfänger Teil sichtbar) | ||
- | <html><pre> | ||
- | _________ | ||
- | | | | ||
- | | O | | ||
- | | | | ||
- | --------- | ||
- | | | | | ||
- | | | | | ||
- | D Gnd Vcc | ||
- | </pre></html> | ||
===== rf433ctl ===== | ===== rf433ctl ===== | ||
- | <html><pre> | + | ==== Quellcode herunterladen ==== |
- | homunkoloss@vidar ~/teensy_workshop % svn checkout https://svn.spreadspace.org/realraum/rf433rcv/ | + | <code> |
- | A rf433rcv/pc | + | homunkoloss@vidar ~/teensy_workshop % git clone https://github.com/realraum/rf433rcv |
- | A rf433rcv/pc/uncompress.c | + | |
- | A rf433rcv/pc/decode2.pl | + | |
- | A rf433rcv/pc/plot_bin.sh | + | |
- | A rf433rcv/pc/autotaste.sh | + | |
- | A rf433rcv/pc/swap.pl | + | |
- | A rf433rcv/pc/hid.h | + | |
- | A rf433rcv/pc/codes | + | |
- | A rf433rcv/pc/decode.pl | + | |
- | A rf433rcv/pc/rawhid_test.c | + | |
- | A rf433rcv/pc/hid_MACOSX.c | + | |
- | A rf433rcv/pc/hid_WINDOWS.c | + | |
- | A rf433rcv/pc/realraum_codes.pl | + | |
- | A rf433rcv/pc/send.sh | + | |
- | A rf433rcv/pc/reset.c | + | |
- | A rf433rcv/pc/hid_LINUX.c | + | |
- | A rf433rcv/pc/plot.py | + | |
- | A rf433rcv/pc/data2sample.pl | + | |
- | A rf433rcv/pc/sample2data.pl | + | |
- | A rf433rcv/pc/testdata | + | |
- | A rf433rcv/pc/testdata/11111_d_bin | + | |
- | A rf433rcv/pc/testdata/sw2on_bin | + | |
- | A rf433rcv/pc/testdata/11111_a_bin_off | + | |
- | A rf433rcv/pc/testdata/11111_b_bin_off | + | |
- | A rf433rcv/pc/testdata/11111_c_bin_off | + | |
- | A rf433rcv/pc/testdata/11111_d_bin_off | + | |
- | A rf433rcv/pc/testdata/11111_a_bin | + | |
- | A rf433rcv/pc/testdata/11111_b_bin | + | |
- | A rf433rcv/pc/testdata/11111_c_bin | + | |
- | A rf433rcv/pc/compress.c | + | |
- | A rf433rcv/pc/Makefile | + | |
- | A rf433rcv/teensy | + | |
- | A rf433rcv/teensy/usb_rawhid.c | + | |
- | A rf433rcv/teensy/example.c | + | |
- | A rf433rcv/teensy/Makefile | + | |
- | A rf433rcv/teensy/usb_rawhid.h | + | |
- | Ausgecheckt, Revision 516. | + | |
- | homunkoloss@vidar ~/teensy_workshop % ll | + | |
- | insgesamt 8 | + | |
- | drwxr-xr-x 7 homunkoloss homunkoloss 4096 2012-04-18 23:35 hidrc/ | + | |
- | drwxr-xr-x 5 homunkoloss homunkoloss 4096 2012-04-18 23:37 rf433rcv/ | + | |
homunkoloss@vidar ~/teensy_workshop % cd rf433rcv | homunkoloss@vidar ~/teensy_workshop % cd rf433rcv | ||
- | homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % ll | ||
- | insgesamt 8 | ||
- | drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 pc/ | ||
- | drwxr-xr-x 3 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy/ | ||
homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % cd pc | homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % cd pc | ||
homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % make | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % make | ||
- | gcc -Wall -O2 -DOS_LINUX -c -o rawhid_test.o rawhid_test.c | + | </code> |
- | gcc -Wall -O2 -DOS_LINUX -c -o hid.o hid_LINUX.c | + | |
- | gcc -o rawhid_test rawhid_test.o hid.o -lusb | + | ==== teensy_loader_cli verlinken ==== |
- | strip rawhid_test | + | <code> |
- | gcc -o compress compress.c | + | |
- | gcc -o uncompress uncompress.c | + | |
- | gcc -Wall -O2 -DOS_LINUX -c -o reset.o reset.c | + | |
- | gcc -o reset reset.o hid.o -lusb | + | |
- | strip reset | + | |
- | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % vim Makefile | + | |
homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ~ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ~ | ||
homunkoloss@vidar ~ % ln -s teensy_workshop/hidrc/teensy_loader_cli | homunkoloss@vidar ~ % ln -s teensy_workshop/hidrc/teensy_loader_cli | ||
Line 222: | Line 112: | ||
drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy_workshop/ | drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy_workshop/ | ||
[...] | [...] | ||
+ | |||
homunkoloss@vidar ~ % cd - | homunkoloss@vidar ~ % cd - | ||
~/teensy_workshop/rf433rcv/pc | ~/teensy_workshop/rf433rcv/pc | ||
homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ../teensy | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ../teensy | ||
homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make | homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make | ||
- | |||
- | -------- begin -------- | ||
- | avr-gcc (GCC) 4.3.5 | ||
- | Copyright (C) 2008 Free Software Foundation, Inc. | ||
- | Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es | ||
- | gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. | ||
- | |||
- | |||
- | Compiling C: example.c | ||
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o | ||
- | example.c:52: Warnung: Funktionsdeklaration ist kein Prototyp | ||
- | |||
- | Compiling C: usb_rawhid.c | ||
- | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./usb_rawhid.lst -std=gnu99 -MMD -MP -MF .dep/usb_rawhid.o.d usb_rawhid.c -o usb_rawhid.o | ||
- | |||
- | Linking: example.elf | ||
- | avr-gcc -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=example.o -std=gnu99 -MMD -MP -MF .dep/example.elf.d example.o usb_rawhid.o --output example.elf -Wl,-Map=example.map,--cref -Wl,--relax -Wl,--gc-sections -lm | ||
- | |||
- | Creating load file for Flash: example.hex | ||
- | avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature example.elf example.hex | ||
- | |||
- | Creating load file for EEPROM: example.eep | ||
- | avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ | ||
- | --change-section-lma .eeprom=0 --no-change-warnings -O ihex example.elf example.eep || exit 0 | ||
- | |||
- | Creating Extended Listing: example.lss | ||
- | avr-objdump -h -S -z example.elf > example.lss | ||
- | |||
- | Creating Symbol Table: example.sym | ||
- | avr-nm -n example.elf > example.sym | ||
- | |||
- | Size after: | ||
- | text data bss dec hex filename | ||
- | 3604 0 710 4314 10da example.elf | ||
- | |||
- | -------- end -------- | ||
- | |||
homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make program | homunkoloss@vidar ~/teensy_workshop/rf433rcv/teensy (svn)-[rf433rcv:516] % make program | ||
../pc/reset || true | ../pc/reset || true | ||
~/teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex | ~/teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex | ||
- | </pre></html> | + | </code> |
===== Variante Easy ===== | ===== Variante Easy ===== | ||
+ | {{:workshop:rf-433-proto.jpg|}} | ||
<html><pre> | <html><pre> | ||
homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./autotaste.sh 0 > taste.txt | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./autotaste.sh 0 > taste.txt | ||
Line 460: | Line 315: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Fehlersuche ===== | ||
+ | ==== hidrc kompiliert nicht ==== | ||
+ | === Fehler === | ||
+ | <html><pre> | ||
+ | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make | ||
+ | -------- begin -------- | ||
+ | avr-gcc (GCC) 4.3.5 | ||
+ | Copyright (C) 2008 Free Software Foundation, Inc. | ||
+ | Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es | ||
+ | gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. | ||
+ | |||
+ | |||
+ | Compiling C: example.c | ||
+ | avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./example.lst -std=gnu99 -MMD -MP -MF .dep/example.o.d example.c -o example.o | ||
+ | example.c:38:20: Fehler: keymap.h: Datei oder Verzeichnis nicht gefunden | ||
+ | example.c: In Funktion »__vector_23«: | ||
+ | example.c:110: Fehler: »mapping« nicht deklariert (erste Benutzung in dieser Funktion) | ||
+ | example.c:110: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt | ||
+ | example.c:110: Fehler: für jede Funktion in der er auftritt.) | ||
+ | make: *** [example.o] Fehler 1 | ||
+ | </pre></html> | ||
+ | |||
+ | === Lösung === | ||
+ | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h | ||
+ | |||
+ | ---- | ||
+ | {{tag>workshop project}} |
realraum Graz, Brockmanngasse 15, 8010 Graz, realraum - Verein für Technik in Kultur und Gesellschaft