Added settings_example.h; user must now copy this to settings.h first!

settings.h contains hardware specific settings and user preferences.
settings.h is ignored in git repository.
This commit is contained in:
Admar Schoonen 2012-01-08 20:42:05 +01:00
parent ff98f561af
commit 6de020aed1
4 changed files with 57 additions and 55 deletions

View File

@ -12,8 +12,9 @@ the following symlink in the directory where you found this file:
ln -s /usr/share/arduino/hardware/ hardware ln -s /usr/share/arduino/hardware/ hardware
Next, enter the wordclock directory. Use 'make' to build the source and 'make Next, enter the wordclock directory. Copy 'settings_example.h' to 'settings.h'
upload' to upload the source to the clock. and modify it for your hardware and preferences. Use 'make' to build the source
and 'make upload' to upload the source to the clock.

View File

@ -1 +1,3 @@
build-cli build-cli
\.*\.swp
settings.h

View File

@ -0,0 +1,47 @@
#ifndef SETTINGS_H
#define SETTINGS_H
// specify the language - defines the header to be included
// available choices - English, Danish, French, German
//#define LANGUAGE "English.h"
#define LANGUAGE "Dutch.h"
#define PRINT_DEBUG_LEVEL 1
// set SKIPSELFTEST to 1 to skip selftest
#define SKIPSELFTEST 1
// set USELIGHTSENSOR to 1 to use ambient light sensor connected to ADC0 (pin
// 23)
#define USELIGHTSENSOR 1
// analog input put to which ambiend light sensor is connected
#define LIGHTSENSOR_INPUTPIN 0
// bottom of light sensor (ambient light values at or lower than this level will
// be mapped to MINBRIGHTNESS)
#define LIGHTSENSOR_BOTTOM 0
// top of light sensor (ambient light values at or higher than this level will
// be mapped to MAXBRIGHTNESS)
#define LIGHTSENSOR_TOP 150
// slope of mapping function at bottom
#define LIGHTSENSOR_ALPHA1 0.02
// slope of mapping function at top
#define LIGHTSENSOR_ALPHA2 0.20
// weight for exponential decaying averaging (actual weigth is 2 ^
// LIGHTSENSOR_WEIGHT)
#define LIGHTSENSOR_WEIGHT 4
// base of exponential mapping (must be > 1)
#define LIGHTSENSOR_BASE 1.40
// N_PWM_STEPS could be increased to 21, but this causes some visible flickering
// at low intensities
#define N_PWM_STEPS 11
// NIGHT Brightness setting 0 = off, (N_PWM_STEPS - 1) = full
#define MINBRIGHTNESS 3
// DAY Brightness setting 0 = off, (N_PWM_STEPS - 1) = full
#define MAXBRIGHTNESS (N_PWM_STEPS - 1)
// start MINBRIGHTNESS at NIGHTLIGHTHOUR (7 pm)
#define NIGHTLIGHTHOUR 19
// start MAXBRIGHTNESS at DAYLIGHTHOUR (7 am)
#define DAYLIGHTHOUR 7
#endif //SETTINGS_H

View File

@ -5,6 +5,7 @@
#include <avr/io.h> #include <avr/io.h>
#include <math.h> #include <math.h>
#include <pt.h> #include <pt.h>
#include "settings.h"
// uncomment the following to speed up the timer for testing // uncomment the following to speed up the timer for testing
//#define TESTMODE //#define TESTMODE
@ -14,13 +15,6 @@ void ledsoff(void);
void setup(void); void setup(void);
void SWversion(void); void SWversion(void);
// specify the language - defines the header to be included
// available choices - English, Danish, French, German
//#define LANGUAGE "English.h"
#define LANGUAGE "Dutch.h"
#define PRINT_DEBUG_LEVEL 1
/************************************************************************** /**************************************************************************
* * * *
* W O R D C L O C K - A clock that tells the time using words. * * W O R D C L O C K - A clock that tells the time using words. *
@ -63,49 +57,12 @@ void SWversion(void);
* using an ISR to control the display * using an ISR to control the display
*/ */
// set SKIPSELFTEST to 1 to skip selftest
#define SKIPSELFTEST 1
// set USELIGHTSENSOR to 1 to use ambient light sensor connected to ADC0 (pin
// 23)
#define USELIGHTSENSOR 1
// analog input put to which ambiend light sensor is connected
#define LIGHTSENSOR_INPUTPIN 0
// bottom of light sensor (ambient light values at or lower than this level will
// be mapped to MINBRIGHTNESS)
#define LIGHTSENSOR_BOTTOM 0
// top of light sensor (ambient light values at or higher than this level will
// be mapped to MAXBRIGHTNESS)
#define LIGHTSENSOR_TOP 150
// slope of mapping function at bottom
#define LIGHTSENSOR_ALPHA1 0.02
// slope of mapping function at top
#define LIGHTSENSOR_ALPHA2 0.20
// weight for exponential decaying averaging (actual weigth is 2 ^ LIGHTSENSOR_WEIGHT)
#define LIGHTSENSOR_WEIGHT 4
// base of exponential mapping (must be > 1)
#define LIGHTSENSOR_BASE 1.40
#define N_PWM_STEPS 11
// DAY Brightness setting 0 = off, N_PWM_STEPS - 1 = full
#define MAXBRIGHTNESS (N_PWM_STEPS - 1)
// start MAXBRIGHTNESS at DAYLIGHTHOUR (7 am)
#define DAYLIGHTHOUR 7
// NIGHT Brightness setting 0 = off, N_PWM_STEPS - 1 = full
#define MINBRIGHTNESS 3
// start MINBRIGHTNESS at NIGHTLIGHTHOUR (7 pm)
#define NIGHTLIGHTHOUR 19
#define INIT_TIMER_COUNT 6 #define INIT_TIMER_COUNT 6
#define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT #define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT
// there are only 20 brightness levels and 1024 lightsensor levels -> we need to // there are only 20 brightness levels and 1024 lightsensor levels -> we need to
// scale the brightness levels to something closer to avoid having to work with // scale the brightness levels to something closer to avoid having to work with
// floating point numbers // floating point numbers
#define LIGHTSENSOR_SCALE 10
unsigned int brightness_per_unit_light = ((1 << LIGHTSENSOR_SCALE) * (MAXBRIGHTNESS -
MINBRIGHTNESS)) / (LIGHTSENSOR_TOP - LIGHTSENSOR_BOTTOM);
int hour=12, minute=0, second=0; int hour=12, minute=0, second=0;
// incremented the second counter // incremented the second counter
@ -159,12 +116,9 @@ volatile boolean inputBufferComplete = false;
// define the language to be used for this project: // define the language to be used for this project:
#include LANGUAGE // The language pack #include LANGUAGE // The language pack
/* Create buffers */ /* Create buffers */
char buf[50]; // time output string for debugging char buf[50]; // time output string for debugging
// create an object that talks to the RTC // create an object that talks to the RTC
DS1302 rtc(DS1302CEPin, DS1302IOPin, DS1302CLKPin); DS1302 rtc(DS1302CEPin, DS1302IOPin, DS1302CLKPin);
@ -187,8 +141,6 @@ void print_DS1302time()
#endif #endif
} }
void setup() void setup()
{ {
int n; int n;
@ -421,9 +373,8 @@ ISR(TIMER2_OVF_vect) {
timercount = N_PWM_STEPS - 1; timercount = N_PWM_STEPS - 1;
} }
void ledsoff(void)
{
void ledsoff(void) {
Display1=0; Display1=0;
Display2=0; Display2=0;
Display3=0; Display3=0;
@ -433,7 +384,8 @@ void ledsoff(void) {
Led4=0; Led4=0;
} }
void incrementtime(void){ void incrementtime(void)
{
// increment the time counters keeping care to rollover as required // increment the time counters keeping care to rollover as required
second=0; second=0;
if (++minute >= 60) { if (++minute >= 60) {