Graphing Calculator
ECE 476 Final Project, Spring 2003
Jeannette Lukito :: Jonathan Wang

:Introduction:
:High.Level.Design:
:Program.Design:
:Hardware.Design:
:Results:
:Pictures:
:Conclusions:
:Appendix:
:Code.of.Ethics:

 

 

 

 

 

 

 

 

Jeannette Lukito
jl259@cornell.edu
Jonathan Wang
jdw24@cornell.edu

Conclusions

     We was pleased with how our design turned out. We implemented most of the functionality that we had originally intended. We had originally planned to include a zoom function, or a mode where the user could input the viewing window range. Although this functionality would not have been too difficult to implement, it may have slowed down our code and affected the stability of our graphing function. We had to streamline a considerable portion of our code just to insure that the graphing would work well. We also did not implement certain functions, like bit manipulation, that we felt were simply not that useful for our target user audience. However, we were able to implement a couple of features that we had not thought of when we originally designed the project. These features were choosing between a dotted/connected graph and choosing between normal/precision mode. Overall we achieved our goals fairly well.

     If we were to design this calculator over, we would find better ways of approximating trigonometric and exponential functions. The McLaurin series that we used required too many extra terms to achieve decent accuracy. Due to the computation limitations of printing to the TV, we wereforced to settle for less accuracy in favor of a stable, flicker-free graph. We think that using an iterative algorithm that converges quickly may give better results. We might even look at how math.h implements their functions, since most of the functions graphed fine in “precision mode”(which uses math.h).

     We would also consider some sort of storage mechanism for the points. That way we could implement a trace function or do other calculations on the graph, something that we could not do when we simply plotted the points out on the fly.

     We used Professor Land’s updated video generation code for the Mega32 as the basis for out code. However, the rest of the code was written by us. We took the McLaurin series expansions off the mathworld.com website; however, these functions can be found in any college mathematics textbook.

     There are no patent opportunities for our project. It has already been done, and better, by Texas Instruments, Hewlett Packard, and a host of other companies. However, it was a very rewarding learning experience to try to implement a basic scientific/graphing calculator and to see the trade-offs(accuracy vs. flicker, additional functionality vs. faster design) that an engineer must consider when designing a calculator.