View previous topic :: View next topic |
Author |
Message |
elizabeth ann
Joined: 16 Feb 2008 Posts: 33
|
adjust time in DS1307 using keypad |
Posted: Fri Feb 29, 2008 11:16 pm |
|
|
hello,
i have tried and successfully displayed the date and time using DS1307, the source of the date and time is my PC. however, i would like to develop a code on how to display the date and time manually, which means it doesn't necessarily have to come from the date and time of my computer.
are there any beginner/sample codes on how to adjust time in DS1307 using a user input like keypad?
thanks. |
|
![](templates/subSilver/images/spacer.gif) |
crystal_lattice
Joined: 13 Jun 2006 Posts: 164
|
Adjusting time |
Posted: Sat Mar 01, 2008 6:26 am |
|
|
Hi there. What do you mean by "the source of the date and time is my PC"??
We used a easy 3 button setup in our coffee project. One button to set the alarm time when pressed or display actual time when released. The other two was used to increment the hours and minutes. eg. when hour button is pressed read the current hour value from the RTC increment it and check that it is not bigger than 23 and write it back to RTC.
Sounds like you want to use keypad to enter numbers. You will have to create some menu function or something to get to the "function" of setting time and then requesting the user to enter a valid time and confirm the entry. with say the # key.
Regards |
|
![](templates/subSilver/images/spacer.gif) |
elizabeth ann
Joined: 16 Feb 2008 Posts: 33
|
Re: Adjusting time |
Posted: Sat Mar 01, 2008 10:06 am |
|
|
crystal_lattice wrote: | Hi there. What do you mean y "the source of the date and time is my PC"??
We used a easy 3 button setup in our coffee project. One button to set the alarm time when pressed or display actual time when released. The other two was used to increment the hours and minutes. eg. when hour button is pressed read the current hour value from the RTC increment it and check that it is not bigger than 23 and write it back to RTC.
Sounds like you want to use keypad to enter numbers. You will have to create some menu function or something to get to the "function" of setting time and then requesting the user to enter a valid time and confirm the entry. with say the # key.
Regards |
hey there,
your project sounds very similar to mine, only that mine is on medicine, yours is on coffee. the 3-button setup sounds interesting, i hope you could share some more tips on that, especially regarding the time input. did you use keypad in setting the time too?
yes, the time and date that the LCD displays is the same as with my PC. this is during a computer simulation. on actual testing, i only get 00:00:00 and it starts counting normally from that number. kidding aside, nothing will be wrong if i actually plugged the module at exactly 12 midnight. by the way, i am planning to display the actual time whenever the microcontroller is idle.
and yes also, i am trying to develop a code that will use the keypad to enter numbers as the actual time, so that i can manually adjust the time anytime i want, with which the clocking will start from. better? or did i just make it more unclear?
make a function to get to the setting of time? that's exactly what i'm working on right now. i have successfully done entering starting time INSIDE the program, but with the keypad, not yet.
can someone give a sample routine for that? any other help will be much appreciated.
thank you.
elizabeth ann |
|
![](templates/subSilver/images/spacer.gif) |
crystal_lattice
Joined: 13 Jun 2006 Posts: 164
|
Setting time |
Posted: Sat Mar 01, 2008 12:40 pm |
|
|
As an assignment each student had to "reverse engineer" the firmware of the
"Kenwood" coffee maker and build prototype. It ONLY had 3 buttons, thats it.
You say that your time displays 00 even if it is not. Are you converting the BCD to HEX and vice versa. In our project we read the BCD time, converted it to HEX, did the addition, converted back to BCD and wrote value to RTC.
As for your keypad thing, make sure the keypad routine returns the right "value" and that it does not get mixed up with ASCII conversion. |
|
![](templates/subSilver/images/spacer.gif) |
Douglas Kennedy
Joined: 07 Sep 2003 Posts: 755 Location: Florida
|
|
Posted: Sat Mar 01, 2008 7:29 pm |
|
|
Just finished a project using the DS1307. It has 4 buttons and interfaces with a 122x32 graphic LCD. It allows timers to be set relative to sunset and relative to sun rise as well as specific times such as 10:35 PM. It automatically adjusts for daylight savings time in the USA. A popular method to deal with all the items required and just 4 buttons is to implement a state machine. A timer debounces the buttons and moves through a menu sub menu tree ( keeping track with a state machine). EX If the tens of minutes is chosen after a selection of change
clock>>change time>>change tens of minutes the state machine allows a button to now adjust the tens of minutes field. It also has an RS232 interface to a PC so the DS1307 registers can be examined. I would start out with getting the buttons and the debounce to work. Then get the dec to bcd, bcd to dec routines. Then get the I2c working to read the DS1307 registers. Then work on a LCD display interface. Then to timers then to specific types of timers EX sunrise plus 35 mins. Then onto daylight savings. Only take on what you can understand and what you need. |
|
![](templates/subSilver/images/spacer.gif) |
|