
#include <16F628A.h>
#FUSES INTRC_IO,NOPROTECT,NOWDT,PUT,NOLVP,NOBROWNOUT, NOMCLR
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_B2,rcv=PIN_B1)
#id CHECKSUM

#use standard_io(A)
#use fast_io(B)

#define LEFT_CA  PIN_A2
#define RIGHT_CA PIN_A1
#define LED_A    PIN_A0
#define LED_B    PIN_B7
#define LED_C    PIN_B6
#define LED_D    PIN_B5
#define LED_E    PIN_B4
#define LED_F    PIN_B3
#define LED_G    PIN_A3

#define EEPROM_SDA	PIN_A6
#define EEPROM_SCL	PIN_A7

#define TEN_LED	LEFT_CA
#define ONE_LED	RIGHT_CA

#ifndef hi
#define hi(x)  (*(&x+1))
#endif

#define crnl() putchar('\r'); putchar('\n');


/* EEPROM offsets */
#define E_CAL	         0x00
#define E_SPEED_OFFSET   0x01
#define E_FEATURES	     0x02
#define E_DELAY	         0x03


/* bit mask fields for features */
#define F_DISP		0
#define F_SLEEP		1
#define F_LOG		2
#define F_LOG_DISP	3

/* standard values */
#define FEATURES_LOG 		0b00001101	// should be 0100 for no disp
#define FEATURES_DOWNLOAD	0b00001001
#define FEATURES_DISPLAY	0b00001011

/* anemometer calibration */
#rom (0x2100 + E_CAL) = { 0xCC }
#rom (0x2100 + E_SPEED_OFFSET) ={ 2 }
/* default to download features */
#rom (0x2100 + E_FEATURES) = { FEATURES_DOWNLOAD }
/* 30 second log interval */
#rom (0x2100 + E_DELAY ) = { 0, 60 }




