Merge branch 'master' of github.com:c3d2/pentabug
This commit is contained in:
commit
d1f36fd547
|
@ -1,7 +1,7 @@
|
||||||
PROJECT=pentabug
|
|
||||||
|
|
||||||
APPS = buggy jumpy mariotheme geiger ducklings blinker
|
APPS = buggy jumpy mariotheme geiger ducklings blinker
|
||||||
|
|
||||||
|
PROJECT=pentabug
|
||||||
|
|
||||||
OPTIMIZATION = -Os
|
OPTIMIZATION = -Os
|
||||||
MCU = atmega88pa
|
MCU = atmega88pa
|
||||||
F_CPU = 8000000
|
F_CPU = 8000000
|
||||||
|
|
19
firmware/apps/example_1.c
Normal file
19
firmware/apps/example_1.c
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <pentabug/app.h>
|
||||||
|
|
||||||
|
// was bedeuten die einzelnen Worte?
|
||||||
|
// was passiert?
|
||||||
|
// geht das einfacher?
|
||||||
|
|
||||||
|
static void example(void) {
|
||||||
|
if(!(PINB & 1)) {
|
||||||
|
PORTD &= ~(1 << 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!(PINB & 2)) {
|
||||||
|
PORTC &= ~(1 << 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(example);
|
18
firmware/apps/example_2.c
Normal file
18
firmware/apps/example_2.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include <pentabug/hal.h>
|
||||||
|
#include <pentabug/app.h>
|
||||||
|
|
||||||
|
// was erwartest du das passiert?
|
||||||
|
// wie kann man das Problem lösen?
|
||||||
|
|
||||||
|
static void example(void) {
|
||||||
|
if(button_state(LEFT)) {
|
||||||
|
led_inv(LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(button_state(RIGHT)) {
|
||||||
|
motor_inv();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(example);
|
24
firmware/apps/example_3.c
Normal file
24
firmware/apps/example_3.c
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#include <pentabug/hal.h>
|
||||||
|
#include <pentabug/app.h>
|
||||||
|
#include <pentabug/music.h>
|
||||||
|
|
||||||
|
static void example(void) {
|
||||||
|
if(button_clicked(LEFT)) {
|
||||||
|
set_note(NOTE_C, 4);
|
||||||
|
wait_ms(500);
|
||||||
|
set_note(NOTE_D, 4);
|
||||||
|
wait_ms(500);
|
||||||
|
stop_note();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(button_clicked(RIGHT)) {
|
||||||
|
set_note(NOTE_D, 4);
|
||||||
|
wait_ms(500);
|
||||||
|
set_note(NOTE_C, 4);
|
||||||
|
wait_ms(500);
|
||||||
|
stop_note();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(example);
|
39
firmware/apps/example_4.c
Normal file
39
firmware/apps/example_4.c
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#include <pentabug/hal.h>
|
||||||
|
#include <pentabug/app.h>
|
||||||
|
|
||||||
|
// was passiert?
|
||||||
|
// gibt es probleme?
|
||||||
|
// wie kann man das problem lösen?
|
||||||
|
|
||||||
|
static void init(void) {
|
||||||
|
led_on(RIGHT);
|
||||||
|
led_on(LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void example(void) {
|
||||||
|
led_inv(LEFT);
|
||||||
|
led_inv(RIGHT);
|
||||||
|
|
||||||
|
wait_ms(500);
|
||||||
|
|
||||||
|
led_inv(LEFT);
|
||||||
|
|
||||||
|
wait_ms(500);
|
||||||
|
|
||||||
|
led_inv(RIGHT);
|
||||||
|
|
||||||
|
wait_ms(500);
|
||||||
|
|
||||||
|
if(button_clicked(LEFT)) {
|
||||||
|
motor_inv();
|
||||||
|
wait_ms(500);
|
||||||
|
motor_inv();
|
||||||
|
wait_ms(500);
|
||||||
|
motor_inv();
|
||||||
|
wait_ms(500);
|
||||||
|
motor_inv();
|
||||||
|
wait_ms(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REGISTER(example, init, NULL);
|
54
firmware/doc/install.md
Normal file
54
firmware/doc/install.md
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
Diese Anleitung geht davon aus, dass du ein Ubuntu, Debian oder ein ähnliches
|
||||||
|
Linux vor dir hast. Es wird grundlegendes Wissen im Umgang mit der Kommandozeile
|
||||||
|
vorausgesetzt.
|
||||||
|
|
||||||
|
Als erstes müssen die benötigten Programme installiert werden:
|
||||||
|
|
||||||
|
sudo apt-get install avr-libc avrdude gcc-avr build-essential
|
||||||
|
|
||||||
|
Danach kannst du dir den Quellcode für die Firmware des Bugs herunterladen.
|
||||||
|
Bewege dich dafür in das Verzeichnis in das du den Quellcode kopieren möchtest
|
||||||
|
und führe folgenden Befehl aus:
|
||||||
|
|
||||||
|
git clone https://github.com/c3d2/pentabug.git
|
||||||
|
|
||||||
|
Jetzt hast du einen neuen Ordner namens `pentabug` in dem sich die Firmware
|
||||||
|
befindet:
|
||||||
|
|
||||||
|
cd pentabug/firmware/
|
||||||
|
|
||||||
|
Nun kannst du den menschenlesbaren Quellcode in maschinenlesbare Befehle
|
||||||
|
überführen. Diesen Vorgang nennt man Kompillieren. Dabei unterstützt dich das
|
||||||
|
sogenannte `Makefile`, dass automatisch überprüft welche Dateien nicht vorhanden
|
||||||
|
sind oder geändert wurden
|
||||||
|
|
||||||
|
make
|
||||||
|
|
||||||
|
Wenn der Befehl oben erfolgreich durchgelaufen ist kannst du die Firmware mit
|
||||||
|
folgendem Befehl auf deinen Pentabug laden:
|
||||||
|
|
||||||
|
make flsmart
|
||||||
|
|
||||||
|
Nun kannst du anfangen den Quellcode anpassen und deine eigenen Programme
|
||||||
|
entwerfen. Die einzelnen Programme befinden sich im Ordner
|
||||||
|
|
||||||
|
pentabug/firmware/app/
|
||||||
|
|
||||||
|
Jedes mal wenn du eine Änderung ausprobieren willst musst die wieder das
|
||||||
|
Makefile ausführen mit folgenden Befehlen
|
||||||
|
|
||||||
|
make
|
||||||
|
make flsmart
|
||||||
|
|
||||||
|
Wenn du ein neues Programm anlegst oder ein existierendes Programm aus der
|
||||||
|
Firmware für deinen Pentabug entfernen musst du die erste Zeile folgender Datei
|
||||||
|
editieren:
|
||||||
|
|
||||||
|
pentabug/firmware/Makefile
|
||||||
|
|
||||||
|
Die einzelnen Einträge hier entsprechen den Dateinamen in
|
||||||
|
|
||||||
|
pentabug/firmware/app/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user