Binary clock help


hey guys,
i trying create binary clock 13 leds connected digital pins, , 2 switches connected analogue pins. have soldered onto proto board, , want solder atmega328p onto board well. because time related software, atmega running @ 8mhz, instead of 16mhz. instead of buying caps , crystal, please me modify program won't need crystal?
code: [select]

int second=0, minute=0, hour=0;
int munit,hunit,valm=0,valh=0,ledstats,i;

void setup()
{
 pinmode(1, output);
 pinmode(2, output);
 pinmode(3, output);
 pinmode(4, output);
 pinmode(5, output);
 pinmode(6, output);
 pinmode(7, output);
 pinmode(8, output);
 pinmode(9, output);
 pinmode(10, output);
 pinmode(11, output);
 pinmode(12, output);
 pinmode(13, output);
 pinmode(0, input);
 pinmode(5, input);
}

void loop()
{
 static unsigned long lasttick = 0;
 if (millis() - lasttick >= 1000)
 {
   lasttick = millis();
   second++;
 }
 if (second >= 60)
 {
   minute++;
   second = 0;
 }
 if (minute >=60)
 {
   hour++;
   minute = 0;
 }
 if (hour >=24)
 {
   hour=0;
   minute = 0;
 }
 munit = minute%10;
 hunit = hour%10;
 ledstats = digitalread(0);
 if (ledstats == low)
 {
   for(i=1;i<=13;i++){
   digitalwrite(i, low);}
 }
 else
 {
 if(munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) {  digitalwrite(1, high);} else {  digitalwrite(1,low);}
 if(munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalwrite(2, high);} else {digitalwrite(2,low);}
 if(munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalwrite(3, high);} else {digitalwrite(3,low);}
 if(munit == 8 || munit == 9) {digitalwrite(4, high);} else {digitalwrite(4,low);}
 
 if((minute >= 10 && minute < 20) || (minute >= 30 && minute < 40) || (minute >= 50 && minute < 60))  {digitalwrite(5, high);} else {digitalwrite(5,low);}
 if(minute >= 20 && minute < 40)  {digitalwrite(6, high);} else {digitalwrite(6,low);}
 if(minute >= 40 && minute < 60) {digitalwrite(7, high);} else {digitalwrite(7,low);}

 if(hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalwrite(8, high);} else {digitalwrite(8,low);}
 if(hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalwrite(9, high);} else {digitalwrite(9,low);}
 if(hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalwrite(10, high);} else {digitalwrite(10,low);}
 if(hunit == 8 || hunit == 9) {digitalwrite(11, high);} else {digitalwrite(11,low);}

 if(hour >= 10 && hour < 20)  {digitalwrite(12, high);} else {digitalwrite(12,low);}
 if(hour >= 20 && hour < 24)  {digitalwrite(13, high);} else {digitalwrite(13,low);}
 }
 valm = analogread(0);
 if(valm<800)
 {
   minute++;
   second=0;
   delay(250);
 }
 valh = analogread(5);  
 if(valh<800)
 {
   hour++;
   second=0;
   delay(250);
 }
}


i need on how connect 2 switches analogue pins 0 , 5. pretty sure switches spdt.


the price pay not using crystal inaccurate clock.  is want?


Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > Binary clock help


arduino

Comments