150 likes | 178 Views
The Calendar Alarm. Sydney Tang Su-tarn Lim Chen-song Qin. Overview. Introduction Demo Design Enhancements. Key Features. View the time and date, including the weekday Program up to eight alarm events Enter data directly. Design Overview. Top-level view Control Time and Date
E N D
The Calendar Alarm Sydney Tang Su-tarn Lim Chen-song Qin
Overview • Introduction • Demo • Design • Enhancements
Key Features • View the time and date, including the weekday • Program up to eight alarm events • Enter data directly
Design Overview • Top-level view • Control • Time and Date • Keypad • Display • Resource utilization
Control • Contains 3 state machines • User interface • LCD state • LCD handshaking • Manages memory for event programming • Keeps track of time and date
Time and Date • Implemented by cascaded counters • Month counter has a variable maximum value • Uses Julian Calendar
Resource Utilization • Total logic cell usage > 95% • Lessons learned: • The cost of UI • Data-entry error checking: 6-7% • Showing variable text: 14% • Formatting the display: 10-20% • The value of modularity
Enhancements • Upgrade from Julian to Gregorian Calendar • Auto-select weekday • Add more types of events • once only • yearly • daily • Allow user-entered event descriptions
Getting the day of the week • Lookup table • 400 elements for Gregorian • 28 elements for Julian • Nasty formula* • W = (k + floor(2.6m - 0.2) - 2C + Y + floor(Y/4) + floor(C/4)) mod 7 • Let the user supply it *source: sci.math FAQ
Calendar schemes Which of these are leap years? • 1900 • 1998 • 1999 • 2000 • 2100 • 2400 • It depends on the Calendar you use