Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
workshop:rf433ctl_workshop [2012-04-18 23:34] homunkoloss |
workshop:rf433ctl_workshop [2015-09-24 13:29] (current) xro |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Workshop mit dem geilen Otti ====== | + | ====== Funksteckdosen Fernsteuern mit teensy ====== |
- | ====== hidrc ====== | + | ====== aka Workshop: Mikrocontrollerprogrammierung mit teensy ====== |
- | ====== Einrichtung ====== | + | ====== Vorbereitung ====== |
- | ===== Kommandos lernen ===== | + | Es müssen folgende Pakete installiert werden: |
- | <html><pre> | + | <code>~ % sudo apt-get install subversion gcc-avr avr-libc build-essential \ |
- | ~ % sudo apt-get install subversion gcc-avr avr-libc build-essential avrdude binutils-avr libusb-dev python-matplotlib | + | avrdude binutils-avr libusb-dev python-matplotlib</code> |
+ | |||
+ | Weiters ist es ratsam einen eigenen Ordner für den Workshop anzulegen. | ||
+ | <code> | ||
~ % 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 -------- | + | |
- | 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. | + | |
+ | Ansicht von vorne (Runde empfänger Teil sichtbar) | ||
+ | <html><pre> | ||
+ | _________ | ||
+ | | | | ||
+ | | O | | ||
+ | | | | ||
+ | --------- | ||
+ | | | | | ||
+ | | | | | ||
+ | D Gnd Vcc | ||
+ | </pre></html> | ||
- | Compiling C: example.c | + | ==== Quellcode herunterladen ==== |
- | 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 % svn checkout https://krypta.wirdorange.org/svn/hidrc/trunk hidrc | |
- | Compiling C: usb_keyboard_debug.c | + | ~/teensy_workshop % cd hidrc |
- | 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 | + | </pre></html> |
- | + | ||
- | 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 -------- | + | |
+ | ==== hidrc kompilieren ==== | ||
+ | <html><pre> | ||
+ | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h | ||
+ | ~/teensy_workshop/hidrc (svn)-[trunk:16] % make | ||
~/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 122: | Line 80: | ||
^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** | ||
+ | |||
+ | |||
+ | ===== rf433ctl ===== | ||
+ | ==== Quellcode herunterladen ==== | ||
+ | <code> | ||
+ | homunkoloss@vidar ~/teensy_workshop % git clone https://github.com/realraum/rf433rcv | ||
+ | homunkoloss@vidar ~/teensy_workshop % cd rf433rcv | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv (svn)-[rf433rcv:516] % cd pc | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % make | ||
+ | </code> | ||
+ | |||
+ | ==== teensy_loader_cli verlinken ==== | ||
+ | <code> | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cd ~ | ||
+ | homunkoloss@vidar ~ % ln -s teensy_workshop/hidrc/teensy_loader_cli | ||
+ | homunkoloss@vidar ~ % ls -l | ||
+ | [...] | ||
+ | lrwxrwxrwx 1 homunkoloss homunkoloss 39 2012-04-18 23:39 teensy_loader_cli -> teensy_workshop/hidrc/teensy_loader_cli/ | ||
+ | drwxr-xr-x 4 homunkoloss homunkoloss 4096 2012-04-18 23:37 teensy_workshop/ | ||
+ | [...] | ||
+ | |||
+ | homunkoloss@vidar ~ % cd - | ||
+ | ~/teensy_workshop/rf433rcv/pc | ||
+ | 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 program | ||
+ | ../pc/reset || true | ||
+ | ~/teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex | ||
+ | </code> | ||
+ | |||
+ | ===== Variante Easy ===== | ||
+ | {{:workshop:rf-433-proto.jpg|}} | ||
+ | <html><pre> | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./autotaste.sh 0 > taste.txt | ||
+ | /tmp/tmp.Kbk5QqjpWm | ||
+ | /tmp/tmp.Id0D1V7c7e | ||
+ | /tmp/tmp.UVg5C9GFzd | ||
+ | 0: | ||
+ | 1 47 | ||
+ | 2 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 189 | ||
+ | 11 | ||
+ | 12 2 | ||
+ | 27 | ||
+ | 28 220 | ||
+ | 29 | ||
+ | 30 10 | ||
+ | 31 | ||
+ | 284 | ||
+ | 285 17 | ||
+ | 286 | ||
+ | 1: | ||
+ | 1 | ||
+ | 2 26 | ||
+ | 3 | ||
+ | 4 | ||
+ | 5 33 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 219 | ||
+ | 9 | ||
+ | 10 15 | ||
+ | 11 | ||
+ | 12 6 | ||
+ | 13 | ||
+ | 14 6 | ||
+ | 15 | ||
+ | 16 1 | ||
+ | 18 3 | ||
+ | 19 | ||
+ | 20 2 | ||
+ | 21 | ||
+ | 22 2 | ||
+ | 24 3 | ||
+ | 26 | ||
+ | 27 170 | ||
+ | 28 | ||
+ | 1173samples | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste.txt | ./compress | ./rawhid_test - | ||
+ | Clearing Buffer | ||
+ | Sending Buffer 63 bytes | ||
+ | 66 04 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 3f 00 00 00 fc ff ff 1f 80 ff ff ff 03 f8 ff ff 3f 80 ff 01 00 00 e0 ff ff | ||
+ | Sending Buffer 63 bytes | ||
+ | 66 7f 00 fc 01 00 00 c0 ff ff ff 01 fc 07 00 00 80 ff ff ff 03 f0 ff ff 7f 00 fe ff ff 0f e0 3f 00 00 00 fc ff ff 0f 80 7f 00 00 00 f0 0f 00 00 00 fe 00 00 00 e0 1f 00 00 00 fe 03 00 00 80 7f | ||
+ | Sending Buffer 23 bytes | ||
+ | 66 00 00 00 f8 ff ff 3f 00 ff ff ff 03 f0 1f 00 00 00 fe 03 00 00 c0 3f | ||
+ | Executing Send command | ||
+ | |||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % | ||
</pre></html> | </pre></html> | ||
+ | ===== Beschreibung der einzelnen Schritte ===== | ||
+ | Autotaste: Versucht eine Periode herauszufiltern, schneidet den Rest weg. | ||
+ | ./rawhid_test: Rohes Signal aufnehmen, auf stdout ausgeben. Ohne Parameter: Empfangen, mit filename als Parameter: Sende File, mit "-" sende stdin. | ||
+ | compress: string -> binörformat, mit parameter: kein längenfeld | ||
+ | uncompress: binärformat -> string | ||
+ | ./realraum_codes.pl: Bitmuster erzeugen. | ||
- | ==== Pinbelegung ==== | + | <html><pre> |
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./rawhid_test | ||
+ | 00000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000000000000000000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111110000000000000000000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000000000000000000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000% homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./rawhid_test | ./plot.py | ||
+ | cat ^CTraceback (most recent call last): | ||
+ | File "./plot.py", line 12, in <module> | ||
+ | pylab.show() | ||
+ | File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in show | ||
+ | Tk.mainloop() | ||
+ | File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 328, in mainloop | ||
+ | _default_root.tk.mainloop(n) | ||
+ | KeyboardInterrupt | ||
+ | 1 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat autotaste.sh | ||
+ | #!/bin/sh | ||
- | TSOP1838: | + | FN=`mktemp` |
- | D3: Data | + | FN2=`mktemp` |
- | Gesamter Port D ist als Input konfiguriert. | + | FN3=`mktemp` |
- | PC7 = VCC | + | echo $FN >&2 |
- | PC6 = GND | + | echo $FN2 >&2 |
+ | echo $FN3 >&2 | ||
+ | ./rawhid_test > $FN | ||
+ | ./decode.pl $FN $1 | xargs ./decode2.pl $FN > $FN2 | ||
+ | if [ $1 -eq 1 ]; then | ||
+ | ./swap.pl < $FN2 >$FN3 | ||
+ | else | ||
+ | cat $FN2 > $FN3 | ||
+ | fi | ||
+ | ./plot.py < $FN3 | ||
+ | cat $FN3 | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ll | ||
+ | insgesamt 388 | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 261 2012-04-18 23:37 autotaste.sh* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 762 2012-04-18 23:37 codes | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 7332 2012-04-18 23:37 compress* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 640 2012-04-18 23:37 compress.c | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 274 2012-04-18 23:37 data2sample.pl* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 182 2012-04-18 23:37 decode2.pl* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 1173 2012-04-18 23:37 decode.pl* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 219 2012-04-18 23:37 hid.h | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 11445 2012-04-18 23:37 hid_LINUX.c | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 11770 2012-04-18 23:37 hid_MACOSX.c | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 3660 2012-04-18 23:37 hid.o | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 8537 2012-04-18 23:37 hid_WINDOWS.c | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 1485 2012-04-18 23:37 Makefile | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 41 2012-04-18 23:37 plot_bin.sh* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 258 2012-04-18 23:37 plot.py* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 9688 2012-04-18 23:37 rawhid_test* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 2426 2012-04-18 23:37 rawhid_test.c | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 2904 2012-04-18 23:37 rawhid_test.o | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 2263 2012-04-18 23:37 realraum_codes.pl* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 9668 2012-04-18 23:37 reset* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 869 2012-04-18 23:37 reset.c | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 1344 2012-04-18 23:37 reset.o | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 458 2012-04-18 23:37 sample2data.pl* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 48 2012-04-18 23:37 send.sh* | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 73 2012-04-18 23:37 swap.pl* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 1174 2012-04-18 23:44 taste.txt | ||
+ | drwxr-xr-x 3 homunkoloss homunkoloss 4096 2012-04-18 23:37 testdata/ | ||
+ | -rwxr-xr-x 1 homunkoloss homunkoloss 7336 2012-04-18 23:37 uncompress* | ||
+ | -rw-r--r-- 1 homunkoloss homunkoloss 518 2012-04-18 23:37 uncompress.c | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste.txt | ./plot.py | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste.txt | ./sample2data.pl | ||
+ | Base 9 | ||
+ | 011101010111010000001100% homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste.txt | ./plot.py | ||
+ | ^Z | ||
+ | [1] + 4205 done cat taste.txt | | ||
+ | 4206 suspended ./plot.py | ||
+ | 20 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % bg | ||
+ | [1] + 4205 done cat taste.txt | | ||
+ | 4206 continued ./plot.py | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste.txt | ./sample2data.pl > taste-data | ||
+ | Base 9 | ||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste-data | ./data2sample.pl 5 | ./plot.py | ||
+ | ^C | ||
+ | Traceback (most recent call last): | ||
+ | File "./plot.py", line 12, in <module> | ||
+ | pylab.show() | ||
+ | File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in show | ||
+ | Tk.mainloop() | ||
+ | File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 328, in mainloop | ||
+ | _default_root.tk.mainloop(n) | ||
+ | KeyboardInterrupt | ||
+ | 1 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % | ||
+ | 1 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % cat taste-data | ./data2sample.pl 5 | ./compress| ./rawhid_test - | ||
+ | Clearing Buffer | ||
+ | Sending Buffer 63 bytes | ||
+ | 66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 ff 07 ff 7f f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 ff 7f f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00 1f | ||
+ | Sending Buffer 19 bytes | ||
+ | 66 00 f0 01 00 1f 00 f0 01 00 ff 7f f0 ff 07 1f 00 f0 01 00 | ||
+ | Executing Send command | ||
- | Ansicht von vorne (Runde empfänger Teil sichtbar) | + | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./realraum_codes.pl |
- | _________ | + | Usage ./realraum_codes.pl {pollin,rsl336t,weiss,schwarz} remote parameters at ./realraum_codes.pl line 28. |
- | | | | + | 255 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./realraum_codes.pl pollin |
- | | O | | + | parameters 00000 {a|b|c|d} {0|1} at ./realraum_codes.pl line 74. |
- | | | | + | 255 homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./realraum_codes.pl pollin 11111 b 1 |
- | --------- | + | 000000000001000101010001% homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./realraum_codes.pl pollin 11111 b 1 | ./data2sample.pl 5 | ./compress| ./rawhid_test - |
- | | | | | + | Clearing Buffer |
- | | | | | + | Sending Buffer 63 bytes |
- | D Gnd Vcc | + | 66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07 1f |
+ | Sending Buffer 19 bytes | ||
+ | 66 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07 | ||
+ | Executing Send command | ||
+ | |||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % ./realraum_codes.pl pollin 11111 b 0 | ./data2sample.pl 5 | ./compress| ./rawhid_test - | ||
+ | Clearing Buffer | ||
+ | Sending Buffer 63 bytes | ||
+ | 66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07 1f | ||
+ | Sending Buffer 19 bytes | ||
+ | 66 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00 | ||
+ | Executing Send command | ||
+ | |||
+ | homunkoloss@vidar ~/teensy_workshop/rf433rcv/pc (svn)-[rf433rcv:516] % | ||
+ | </pre></html> | ||
+ | |||
+ | |||
+ | |||
+ | ===== Pinbelegung ===== | ||
+ | USB-Stick am PC anstecken. Leitung auf D0 legen. | ||
+ | Sender: Datenleitung auf F0, GND auf GND, Vcc auf Vcc. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== 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