bumped version.pull/22/head
@@ -42,7 +42,8 @@ LIBS = | |||||
SRC = ds1302.c maxdetect.c piNes.c \ | SRC = ds1302.c maxdetect.c piNes.c \ | ||||
gertboard.c piFace.c \ | gertboard.c piFace.c \ | ||||
lcd128x64.c lcd.c | |||||
lcd128x64.c lcd.c \ | |||||
piGlow.c | |||||
OBJ = $(SRC:.c=.o) | OBJ = $(SRC:.c=.o) | ||||
@@ -86,6 +87,7 @@ install-headers: | |||||
@install -m 0644 piFace.h $(DESTDIR)$(PREFIX)/include | @install -m 0644 piFace.h $(DESTDIR)$(PREFIX)/include | ||||
@install -m 0644 lcd128x64.h $(DESTDIR)$(PREFIX)/include | @install -m 0644 lcd128x64.h $(DESTDIR)$(PREFIX)/include | ||||
@install -m 0644 lcd.h $(DESTDIR)$(PREFIX)/include | @install -m 0644 lcd.h $(DESTDIR)$(PREFIX)/include | ||||
@install -m 0644 piGlow.h $(DESTDIR)$(PREFIX)/include | |||||
.PHONEY: install | .PHONEY: install | ||||
install: $(DYNAMIC) install-headers | install: $(DYNAMIC) install-headers | ||||
@@ -111,6 +113,7 @@ uninstall: | |||||
@rm -f $(DESTDIR)$(PREFIX)/include/piFace.h | @rm -f $(DESTDIR)$(PREFIX)/include/piFace.h | ||||
@rm -f $(DESTDIR)$(PREFIX)/include/lcd128x64.h | @rm -f $(DESTDIR)$(PREFIX)/include/lcd128x64.h | ||||
@rm -f $(DESTDIR)$(PREFIX)/include/lcd.h | @rm -f $(DESTDIR)$(PREFIX)/include/lcd.h | ||||
@rm -f $(DESTDIR)$(PREFIX)/include/piGlow.h | |||||
@rm -f $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.* | @rm -f $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.* | ||||
@ldconfig | @ldconfig | ||||
@@ -128,3 +131,4 @@ gertboard.o: gertboard.h | |||||
piFace.o: piFace.h | piFace.o: piFace.h | ||||
lcd128x64.o: font.h lcd128x64.h | lcd128x64.o: font.h lcd128x64.h | ||||
lcd.o: lcd.h | lcd.o: lcd.h | ||||
piGlow.o: piGlow.h |
@@ -0,0 +1,117 @@ | |||||
/* | |||||
* piGlow.c: | |||||
* Easy access to the Pimoroni PiGlow board. | |||||
* | |||||
* Copyright (c) 2013 Gordon Henderson. | |||||
*********************************************************************** | |||||
* This file is part of wiringPi: | |||||
* https://projects.drogon.net/raspberry-pi/wiringpi/ | |||||
* | |||||
* wiringPi is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU Lesser General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* wiringPi is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>. | |||||
*********************************************************************** | |||||
*/ | |||||
#include <wiringPi.h> | |||||
#include <sn3218.h> | |||||
#include "piGlow.h" | |||||
static int myBase ; | |||||
static int leg0 [6] = { 6, 7, 8, 5, 4, 9 } ; | |||||
static int leg1 [6] = { 17, 16, 15, 13, 11, 10 } ; | |||||
static int leg2 [6] = { 0, 1, 2, 3, 14, 12 } ; | |||||
/* | |||||
* piGlow1: | |||||
* Light up an individual LED | |||||
********************************************************************************* | |||||
*/ | |||||
void piGlow1 (const int leg, const int ring, const int intensity) | |||||
{ | |||||
int *legLeds ; | |||||
if ((leg < 0) || (leg > 2)) return ; | |||||
if ((ring < 0) || (ring > 5)) return ; | |||||
/**/ if (leg == 0) | |||||
legLeds = leg0 ; | |||||
else if (leg == 1) | |||||
legLeds = leg1 ; | |||||
else | |||||
legLeds = leg2 ; | |||||
analogWrite (myBase + legLeds [ring], intensity) ; | |||||
} | |||||
/* | |||||
* piGlowLeg: | |||||
* Light up all 6 LEDs on a leg | |||||
********************************************************************************* | |||||
*/ | |||||
void piGlowLeg (const int leg, const int intensity) | |||||
{ | |||||
int i ; | |||||
int *legLeds ; | |||||
if ((leg < 0) || (leg > 2)) | |||||
return ; | |||||
/**/ if (leg == 0) | |||||
legLeds = leg0 ; | |||||
else if (leg == 1) | |||||
legLeds = leg1 ; | |||||
else | |||||
legLeds = leg2 ; | |||||
for (i = 0 ; i < 6 ; ++i) | |||||
analogWrite (myBase + legLeds [i], intensity) ; | |||||
} | |||||
/* | |||||
* piGlowRing: | |||||
* Light up 3 LEDs in a ring. Ring 0 is the outermost, 5 the innermost | |||||
********************************************************************************* | |||||
*/ | |||||
void piGlowRing (const int ring, const int intensity) | |||||
{ | |||||
if ((ring < 0) || (ring > 5)) | |||||
return ; | |||||
analogWrite (myBase + leg0 [ring], intensity) ; | |||||
analogWrite (myBase + leg1 [ring], intensity) ; | |||||
analogWrite (myBase + leg2 [ring], intensity) ; | |||||
} | |||||
/* | |||||
* piGlowSetup: | |||||
* Initialise the board & remember the pins we're using | |||||
********************************************************************************* | |||||
*/ | |||||
void piGlowSetup (const int pinBase) | |||||
{ | |||||
sn3218Setup (myBase = pinBase) ; | |||||
// Turn all off to start with | |||||
piGlowLeg (0, 0) ; | |||||
piGlowLeg (1, 0) ; | |||||
piGlowLeg (2, 0) ; | |||||
} |
@@ -0,0 +1,36 @@ | |||||
/* | |||||
* piglow.h: | |||||
* Easy access to the Pimoroni PiGlow board. | |||||
* | |||||
* Copyright (c) 2013 Gordon Henderson. | |||||
*********************************************************************** | |||||
* This file is part of wiringPi: | |||||
* https://projects.drogon.net/raspberry-pi/wiringpi/ | |||||
* | |||||
* wiringPi is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU Lesser General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* wiringPi is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>. | |||||
*********************************************************************** | |||||
*/ | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
extern void piGlow1 (const int leg, const int ring, const int intensity) ; | |||||
extern void piGlowLeg (const int leg, const int intensity) ; | |||||
extern void piGlowRing (const int ring, const int intensity) ; | |||||
extern void piGlowSetup (const int pinBase) ; | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif |
@@ -0,0 +1,69 @@ | |||||
# | |||||
# Makefile: | |||||
# wiringPi - Wiring Compatable library for the Raspberry Pi | |||||
# https://projects.drogon.net/wiring-pi | |||||
# | |||||
# Copyright (c) 2012-2013 Gordon Henderson | |||||
################################################################################# | |||||
# This file is part of wiringPi: | |||||
# Wiring Compatable library for the Raspberry Pi | |||||
# | |||||
# wiringPi is free software: you can redistribute it and/or modify | |||||
# it under the terms of the GNU Lesser General Public License as published by | |||||
# the Free Software Foundation, either version 3 of the License, or | |||||
# (at your option) any later version. | |||||
# | |||||
# wiringPi is distributed in the hope that it will be useful, | |||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
# GNU Lesser General Public License for more details. | |||||
# | |||||
# You should have received a copy of the GNU Lesser General Public License | |||||
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>. | |||||
################################################################################# | |||||
#DEBUG = -g -O0 | |||||
DEBUG = -O3 | |||||
CC = gcc | |||||
INCLUDE = -I/usr/local/include | |||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe | |||||
LDFLAGS = -L/usr/local/lib | |||||
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm | |||||
# Should not alter anything below this line | |||||
############################################################################### | |||||
SRC = piGlow0.c piGlow1.c | |||||
OBJ = $(SRC:.c=.o) | |||||
BINS = $(SRC:.c=) | |||||
all: $(BINS) | |||||
piGlow0: piGlow0.o | |||||
@echo [link] | |||||
@$(CC) -o $@ piGlow0.o $(LDFLAGS) $(LDLIBS) | |||||
piGlow1: piGlow1.o | |||||
@echo [link] | |||||
@$(CC) -o $@ piGlow1.o $(LDFLAGS) $(LDLIBS) | |||||
.c.o: | |||||
@echo [CC] $< | |||||
@$(CC) -c $(CFLAGS) $< -o $@ | |||||
clean: | |||||
@echo "[Clean]" | |||||
@rm -f $(OBJ) *~ core tags $(BINS) | |||||
tags: $(SRC) | |||||
@echo [ctags] | |||||
@ctags $(SRC) | |||||
depend: | |||||
makedepend -Y $(SRC) | |||||
# DO NOT DELETE |
@@ -0,0 +1,223 @@ | |||||
/* | |||||
* piGlow1.c: | |||||
* Very simple demonstration of the PiGlow board. | |||||
* This uses the piGlow devLib. | |||||
* | |||||
* Copyright (c) 2013 Gordon Henderson. | |||||
*********************************************************************** | |||||
* This file is part of wiringPi: | |||||
* https://projects.drogon.net/raspberry-pi/wiringpi/ | |||||
* | |||||
* wiringPi is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU Lesser General Public License as published by | |||||
* the Free Software Foundation, either version 3 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* wiringPi is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>. | |||||
*********************************************************************** | |||||
*/ | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include <poll.h> | |||||
#include <wiringPi.h> | |||||
#include <piGlow.h> | |||||
#define PIGLOW_BASE 533 | |||||
/* | |||||
* keypressed: clearKeypressed: | |||||
* Simple but effective ways to tell if the enter key has been pressed | |||||
********************************************************************************* | |||||
*/ | |||||
static int keypressed (void) | |||||
{ | |||||
struct pollfd polls ; | |||||
polls.fd = fileno (stdin) ; | |||||
polls.events = POLLIN ; | |||||
return poll (&polls, 1, 0) != 0 ; | |||||
} | |||||
static void clearKeypressed (void) | |||||
{ | |||||
while (keypressed ()) | |||||
(void)getchar () ; | |||||
} | |||||
/* | |||||
* pulseLed: | |||||
* Pulses the LED at position leg, ring from off to a max. value, | |||||
* then off again | |||||
********************************************************************************* | |||||
*/ | |||||
static void pulseLed (int leg, int ring) | |||||
{ | |||||
int i ; | |||||
for (i = 0 ; i < 140 ; ++i) | |||||
{ | |||||
piGlow1 (leg, ring, i) ; | |||||
delay (1) ; | |||||
} | |||||
delay (10) ; | |||||
for (i = 140 ; i >= 0 ; --i) | |||||
{ | |||||
piGlow1 (leg, ring, i) ; | |||||
delay (1) ; | |||||
} | |||||
} | |||||
/* | |||||
* pulseLeg: | |||||
* Same as above, but a whole leg at a time | |||||
********************************************************************************* | |||||
*/ | |||||
static void pulseLeg (int leg) | |||||
{ | |||||
int i ; | |||||
for (i = 0 ; i < 140 ; ++i) | |||||
{ | |||||
piGlowLeg (leg, i) ; delay (1) ; | |||||
} | |||||
delay (10) ; | |||||
for (i = 140 ; i >= 0 ; --i) | |||||
{ | |||||
piGlowLeg (leg, i) ; delay (1) ; | |||||
} | |||||
} | |||||
/* | |||||
* pulse Ring: | |||||
* Same as above, but a whole ring at a time | |||||
********************************************************************************* | |||||
*/ | |||||
static void pulseRing (int ring) | |||||
{ | |||||
int i ; | |||||
for (i = 0 ; i < 140 ; ++i) | |||||
{ | |||||
piGlowRing (ring, i) ; delay (1) ; | |||||
} | |||||
delay (10) ; | |||||
for (i = 140 ; i >= 0 ; --i) | |||||
{ | |||||
piGlowRing (ring, i) ; delay (1) ; | |||||
} | |||||
} | |||||
/* | |||||
* main: | |||||
* Our little demo prgoram | |||||
********************************************************************************* | |||||
*/ | |||||
int main (void) | |||||
{ | |||||
int i ; | |||||
int ring, leg ; | |||||
// Always initialise wiringPi: | |||||
// Use the Sys method if you don't need to run as root | |||||
wiringPiSetupSys () ; | |||||
// Initialise the piGlow devLib with our chosen pin base | |||||
piGlowSetup (PIGLOW_BASE) ; | |||||
// LEDs, one at a time | |||||
printf ("LEDs, one at a time\n") ; | |||||
for (; !keypressed () ;) | |||||
for (leg = 0 ; leg < 3 ; ++leg) | |||||
{ | |||||
for (ring = 0 ; ring < 6 ; ++ring) | |||||
{ | |||||
pulseLed (leg, ring) ; | |||||
if (keypressed ()) | |||||
break ; | |||||
} | |||||
if (keypressed ()) | |||||
break ; | |||||
} | |||||
clearKeypressed () ; | |||||
// Rings, one at a time | |||||
printf ("Rings, one at a time\n") ; | |||||
for (; !keypressed () ;) | |||||
for (ring = 0 ; ring < 6 ; ++ring) | |||||
{ | |||||
pulseRing (ring) ; | |||||
if (keypressed ()) | |||||
break ; | |||||
} | |||||
clearKeypressed () ; | |||||
// Legs, one at a time | |||||
printf ("Legs, one at a time\n") ; | |||||
for (; !keypressed () ;) | |||||
for (leg = 0 ; leg < 3 ; ++leg) | |||||
{ | |||||
pulseLeg (leg) ; | |||||
if (keypressed ()) | |||||
break ; | |||||
} | |||||
clearKeypressed () ; | |||||
delay (1000) ; | |||||
// Sequence - alternating rings, legs and random | |||||
printf ("Sequence now\n") ; | |||||
for (; !keypressed () ;) | |||||
{ | |||||
for (i = 0 ; i < 20 ; ++i) | |||||
for (leg = 2 ; leg >= 0 ; --leg) | |||||
{ | |||||
piGlowLeg (leg, 100) ; | |||||
delay (100) ; | |||||
piGlowLeg (leg, 0) ; | |||||
} | |||||
for (i = 0 ; i < 20 ; ++i) | |||||
for (ring = 5 ; ring >= 0 ; --ring) | |||||
{ | |||||
piGlowRing (ring, 100) ; | |||||
delay (50) ; | |||||
piGlowRing (ring, 0) ; | |||||
} | |||||
for (i = 0 ; i < 1000 ; ++i) | |||||
{ | |||||
leg = random () % 3 ; | |||||
ring = random () % 6 ; | |||||
piGlow1 (leg, ring, random () % 256) ; | |||||
delay (5) ; | |||||
piGlow1 (leg, ring, 0) ; | |||||
} | |||||
} | |||||
return 0 ; | |||||
} |
@@ -51,7 +51,7 @@ extern void doReadallOld (void) ; | |||||
# define FALSE (1==2) | # define FALSE (1==2) | ||||
#endif | #endif | ||||
#define VERSION "2.09" | |||||
#define VERSION "2.10" | |||||
#define I2CDETECT "/usr/sbin/i2cdetect" | #define I2CDETECT "/usr/sbin/i2cdetect" | ||||
int wpMode ; | int wpMode ; | ||||