Merge branch 'master' of github.com:c3d2/pentabug

This commit is contained in:
bigalex 2015-03-11 22:34:28 +01:00
commit d1f36fd547
6 changed files with 156 additions and 2 deletions

View File

@ -1,7 +1,7 @@
PROJECT=pentabug
APPS = buggy jumpy mariotheme geiger ducklings blinker
PROJECT=pentabug
OPTIMIZATION = -Os
MCU = atmega88pa
F_CPU = 8000000

19
firmware/apps/example_1.c Normal file
View 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
View 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
View 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
View 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
View 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/