Difference between revisions of "U23 2007"
(→Abend 2) |
(→Testen & Kompilieren) |
||
Line 58: | Line 58: | ||
avrdude -p m644 -b 115200 -c avr109 -P /dev/ttyUSB0 -F -u -U flash:w:tmp.hex | avrdude -p m644 -b 115200 -c avr109 -P /dev/ttyUSB0 -F -u -U flash:w:tmp.hex | ||
echo X > /dev/ttyUSB0 | echo X > /dev/ttyUSB0 | ||
+ | |||
+ | |||
+ | Makefile: (NAME=sourcecode.c dateiname ohne .c) | ||
+ | <pre><nowiki> | ||
+ | SERIALPORT=/dev/ttyUSB0 | ||
+ | NAME=nightrider | ||
+ | |||
+ | CC=avr-gcc | ||
+ | CFLAGS=-Wall -mmcu=atmega644 | ||
+ | |||
+ | OBJCPY=avr-objcopy | ||
+ | OFLAGS=-O ihex | ||
+ | |||
+ | BOOTL=launch-bootloader | ||
+ | BFLAGS=$(SERIALPORT) 115200 | ||
+ | |||
+ | AVRDUDE=avrdude | ||
+ | AFLAGS=-p m644 -b 115200 -c avr109 -P $(SERIALPORT) -F -u -U flash:w: | ||
+ | |||
+ | all: object hex | ||
+ | |||
+ | install: bootloader flash runit | ||
+ | |||
+ | object: | ||
+ | $(CC) $(CFLAGS) -o $(NAME).elf $(NAME).c | ||
+ | |||
+ | hex: | ||
+ | $(OBJCPY) $(OFLAGS) $(NAME).elf $(NAME).hex | ||
+ | |||
+ | bootloader: | ||
+ | $(BOOTL) $(BFLAGS) | ||
+ | |||
+ | flash: | ||
+ | $(AVRDUDE) $(AFLAGS)$(NAME).hex | ||
+ | |||
+ | runit: | ||
+ | echo X > $(SERIALPORT) | ||
+ | |||
+ | clean: | ||
+ | rm -f *.hex *.elf | ||
+ | |||
+ | |||
+ | </nowiki></pre> | ||
=== Frage === | === Frage === |
Revision as of 00:31, 15 May 2007
Hier sammeln wir Ideen und Hintergrundinformationen zum U23 2007.
Contents
Hintergrundinformationen
- http://www.lochraster.org/etherrape/
- http://wiki.lochraster.org/
- ATMEGA644
- Folien zum Einführungsabend
Generelle Dokumentation
- AVR-Libc Dokumentation (pdf)
- AVR-Libc Dokumentation (online, html)
- 74HC4094 Schieberegister Datenblatt
Bastelideen
- Wetterstation
- Zahlencodeschloss zur Türsteuerung mit Kameraerweiterung
- NAS-Server zu Hause übers www einschalten(evtl. auch per Tel. zu aktivieren?) //dirtyheizer aka Marcus Loßow
Abend 2
/Binär durchzählen
/Schieberegister
Testen & Kompilieren
testdatei:
#include <avr/io.h> int main(void) { DDRA = 0xFF; PORTA = 0xAA; return 0; }
kompilieren:
avr-gcc -mmcu=atmega644 -Wall -o direkt.elf direkt.c
hex-file erzeugen:
avr-objcopy -O ihex direkt.elf direkt.hex
bootloader starten (strom raus, launch-bootloader starten, strom rein, warten bis blinkt):
launch-bootloader /dev/ttyUSB0 115200
installieren:
avrdude -p m644 -b 115200 -c avr109 -P /dev/ttyUSB0 -F -u -U flash:w:direkt.hex
flash script (usb):
#!/bin/bash avr-gcc -mmcu=atmega644 -Wall -o tmp.elf $1 avr-objcopy -O ihex tmp.elf tmp.hex launch-bootloader /dev/ttyUSB0 115200 avrdude -p m644 -b 115200 -c avr109 -P /dev/ttyUSB0 -F -u -U flash:w:tmp.hex echo X > /dev/ttyUSB0
Makefile: (NAME=sourcecode.c dateiname ohne .c)
SERIALPORT=/dev/ttyUSB0 NAME=nightrider CC=avr-gcc CFLAGS=-Wall -mmcu=atmega644 OBJCPY=avr-objcopy OFLAGS=-O ihex BOOTL=launch-bootloader BFLAGS=$(SERIALPORT) 115200 AVRDUDE=avrdude AFLAGS=-p m644 -b 115200 -c avr109 -P $(SERIALPORT) -F -u -U flash:w: all: object hex install: bootloader flash runit object: $(CC) $(CFLAGS) -o $(NAME).elf $(NAME).c hex: $(OBJCPY) $(OFLAGS) $(NAME).elf $(NAME).hex bootloader: $(BOOTL) $(BFLAGS) flash: $(AVRDUDE) $(AFLAGS)$(NAME).hex runit: echo X > $(SERIALPORT) clean: rm -f *.hex *.elf
Frage
Was tut dieses Programm?
#include <avr/io.h> int main(void) { while (1) { DDRA = 0xFF; PORTA ^= 0xAA; uint16_t i; uint16_t j; for (i = 0; i < 5; i++) { for (j = 0; j < 0xffff; j++) { /* nix */ } } } return 0; }
Feedback
Bitte hier (auch gern anonym) Feedback hinterlassen:
Interessenten fertige etherrapes
NACH U23 stehen drei fertige etherrapes fuer 59,- zum Verkauf.
Interessenten:
- Benjamin
- Sebi
- Hanno