/*
General Purpose counter
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define buttonA 12 //reset
#define buttonB 11 //up
#define buttonC 10 // down
#define buttonD 19 // step
#define buttonE 19 // mode Count 2/4/8/16
#define SpeedPot A0 // Sets the count Speed bits/s
//IC 74595
#define SHIFT_DATA 2
#define SHIFT_CLK 3
#define SHIFT_LATCH 4
int mainCounter = 0;
int maxCount = 0;
void setOutput(int address) {
shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, (address >> 8) );
shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, address);
digitalWrite(SHIFT_LATCH, LOW);
digitalWrite(SHIFT_LATCH, HIGH);
digitalWrite(SHIFT_LATCH, LOW);
}
void setup() {
lcd.init();
lcd.backlight();
pinMode(SHIFT_DATA, OUTPUT);
pinMode(SHIFT_CLK, OUTPUT);
pinMode(SHIFT_LATCH, OUTPUT);
pinMode(buttonA,INPUT_PULLUP);
pinMode(buttonB,INPUT_PULLUP);
pinMode(buttonC,INPUT_PULLUP);
pinMode(buttonD,INPUT_PULLUP);
pinMode(SpeedPot,INPUT);
}
void loop() {
// Reset Counter
if(digitalRead(buttonA) == LOW )
{
int mainCounter = 0;
}
// Toggle count mode
if(digitalRead(buttonB) == LOW )
{
if(maxCount=65535) maxCount = 4;
if(maxCount=255) maxCount = 8;
if(maxCount=8) maxCount = 4;
if(maxCount=4) maxCount = 65525;
}
void countPrint(int value){
lcd.setCursor(1,0);lcd.print(value,DEC);
}
countSet(){
switch() {
case 1:break;
case 2:break;
case 3:break;
case 4:break;
}
}