Last active
August 18, 2017 15:45
-
-
Save urmil0071/a72611deaa83e921c7446b59678fc759 to your computer and use it in GitHub Desktop.
Use Timer1 to Run a Stopwatch on LCD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Arduino.h> | |
#include <LiquidCrystal.h> | |
LiquidCrystal lcd(A0,A1,A2 ,A3 ,A4, A5); | |
byte mills,mins,sec; | |
void setup() | |
{ | |
sec=0; | |
mills=0; | |
mins=0; | |
lcd.begin(16,2); | |
lcd.clear(); | |
TCCR1A=0x00; ///Timer 1 normal mode | |
TCCR1B=0x00; /// Timer 1 off | |
TCNT1=0xF9E6; /// Timer 1 preset value 1/10 sec | |
bitWrite(SREG,7,1); /// Enable global interrupt | |
bitWrite(TIMSK1,0,1); /// Enable TIMER1_OVF interrupt | |
TCCR1B=0x05; /// Timer 1 ON | |
} | |
ISR(TIMER1_OVF_vect) | |
{ | |
TCCR1B=0x00; /// Timer 1 off | |
TCNT1=0xF9E6; | |
mills=mills+1; | |
if(mills>9) | |
{ | |
sec=sec+1; | |
mills=0; | |
} | |
if(sec>59) | |
{ | |
mins=mins+1; | |
mills=0; | |
sec=0; | |
} | |
bitSet(TIFR1,2); /// TOV1 Clear | |
TCCR1B=0x05; /// Timer 1 ON | |
interrupts(); | |
lcd.clear(); | |
lcd.setCursor(1,0); | |
lcd.println("MIN:SEC:SEC/10"); | |
lcd.setCursor(4,1); | |
lcd.print(mins,DEC); | |
lcd.print(":"); | |
lcd.print(sec,DEC); | |
lcd.print(":"); | |
lcd.print(mills,DEC); | |
} | |
void loop() | |
{ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
**Make a Watch on LCD **