|
|
Line 23: |
Line 23: |
| == Abend 2 == | | == Abend 2 == |
| | | |
− | [[Inhalt Abend 2]] | + | [[/Inhalt Abend 2]] |
| | | |
| [[/Binär durchzählen]]<br /> | | [[/Binär durchzählen]]<br /> |
| [[/Schieberegister]] | | [[/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)
| |
− | <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 ===
| |
− |
| |
− | 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:
| |
− |
| |
− | * [[/Feedback Abend 1]]
| |
− | * [[/Feedback Abend 2]]
| |
− |
| |
− | == Bastermaterial ==
| |
− |
| |
− | Was haben wir? Was brauchen wir?
| |
− |
| |
− | === ICs ===
| |
− |
| |
− | Der C4 hat eine ganze Reihe an ICs geschenkt gekriegt, die für das U23 zur Verfügung stehen. Derzeit sind noch von allen jeweils eine Stange (also 20 oder 25 Stück) vorhanden.
| |
− |
| |
− | {| border="1" style="border-collapse:collapse;"
| |
− | ! Typ || Bezeichnung
| |
− | |-
| |
− | |74LS02N || Vier NOR-Gatter mit je 2 Eingängen
| |
− | |-
| |
− | |74LS05N || Sechs Inverter (open Collector)
| |
− | |-
| |
− | |74LS07 || Sechs Treiber (open Collector, 30V)
| |
− | |-
| |
− | |74LS12N || Drei NAND-Gatter mit je 3 Eingängen (open Collector)
| |
− | |-
| |
− | |74LS20 || Zwei NAND-Gatter mit je 4 Eingängen
| |
− | |-
| |
− | |74LS32N || Vier OR-Gatter mit je 2 Eingängen
| |
− | |-
| |
− | |74LS38B1 || Vier NAND-Leistungsgatter mit je 2 Eingängen (open Collector)
| |
− | |-
| |
− | |74LS73AN || Zwei JK-Flipflops mit Clear
| |
− | |-
| |
− | |74LS74AN || Zwei D-Flipflops mit Preset und Clear
| |
− | |-
| |
− | |74LS83AN || 4-Bit Volladdierer
| |
− | |-
| |
− | |74LS95BP || 4-Bit Schieberegister mit paralleler Ein- und Ausgabe
| |
− | |-
| |
− | |74ALS112 || Zwei J-K Flipflops mit Preset und Clear (Advanced Speed)
| |
− | |-
| |
− | |74LS191 || Synchroner programmierbarer Vorwärts/Rückwärts 4-Bit Binärzähler
| |
− | |-
| |
− | |74LS193B1 || Synchroner programmierbarer Vorwärts/Rückwärts 4-Bit Binärzähler mit Clear
| |
− | |-
| |
− | |74LS258AB1 || Vier 2 zu 1 Datenselektoren/Multiplexer mit invertierenden Tri-State Ausgängen
| |
− | |-
| |
− | |74LS273N || 8-Bit D Register mit Clear
| |
− | |-
| |
− | |74LS280 || 9-Bit Paritätsgenerator/Paritätsprüfer
| |
− | |-
| |
− | |74LS374N || 8-Bit D Register mit Tri-State Ausgängen
| |
− | |-
| |
− | |74LS375P || Zwei 2-Bit D Latches mit Enable
| |
− | |-
| |
− | |74LS645B1 || Octal Bus Transceiver
| |
− | |-
| |
− | |74LS688N || 8-Bit Equality Comparator
| |
− | |}
| |
− |
| |
− | == Interessenten fertige etherrapes ==
| |
− |
| |
− | NACH U23 stehen drei fertige etherrapes fuer 59,- zum Verkauf.
| |
− |
| |
− | Interessenten:
| |
− |
| |
− | # Benjamin
| |
− | # Sebi
| |
− | # Hanno
| |
− | # Felix
| |
− |
| |
− | == OffTopic ==
| |
− |
| |
− | ===Borg 3D===
| |
− |
| |
− | Die Borgs 3d standen heute bei uns in der Uni (irgend ein Schüler und Naturwissenschaften Messe ding): Sind ganz lustig anzusehen:
| |
− | *[http://youtube.com/watch?v=4MGKhFIujM4 Borg 3d in Farbe]
| |
− | *[http://youtube.com/watch?v=PGb9DeUOsSY Borg 3d in 8x8x8]
| |
− | gemacht von [http://www.das-labor.org das-labor.org] aus Bochum.
| |
− |
| |
− | lenkt aber wahrscheinlich von unserem Eigentlichen Projekt ab, etwas mit dem etherrape zu machen. Gruß Hanno
| |