Help with pic16f877a programming stopwatch

Thread Starter

helloiamkat

Joined Jun 17, 2010
5
Hi

I want to create a stopwatch using a PIC16F877A. To start and stop the stopwatch a simple switch can be used. Since, I'm more familiar with C++ language and I was told I can use it to program such, I plan to use that to program my microcontroller.

I did some initial reading and found out that Timer1 can be used for this. I'm not asking for codes, however I was just wondering if I was going in the right direction and if you could give me your opinions, advices, tips and such with my programming.

Looking forward to your replies.

THANKS! ♥
 

Markd77

Joined Sep 7, 2009
2,806
There may be some built in timer in C, I use assembler myself.
Timer1 is a 16 bit timer so it counts up to 65535 then resets. There is a prescaler that can be set to slow the timer down up to 8 times, but that means it will still overflow about twice a second with a 4MHz clock speed.
An interrupt can be set up that triggers when the timer resets and that can be used to increment your own counter variable. At that point you can also set the timer so it can interrupt at a more useful interval (exactly 1/10 second, etc).
 

Thread Starter

helloiamkat

Joined Jun 17, 2010
5
@Markd77 I'm sorry but I didn't understand what you said. Haha. :) I'm quite new with programming - I'm trying my best though. Can you explain it again?? Thanks.
 
Read about the timers and interrupts in that PIC's datasheet about 4 times over. Give it a day, and then read it again. At that point, what Mark said will begin to make sense.

Basically:
The 16 bit timer has a place for 16 zeros or ones can count to ~65000. To be very basic lets pretend that each "tick" of the internal oscillator = 1 increment of the timer which = 1 second. (Again, this is just to be simple). After 65000 seconds, or 65000 oscillator "ticks" the timer will "overflow" (reset to 0). In your programming, you can test for this condition and then make the program perform a function based on this (IE: increment the displayed time).
 
Top