<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>sgtom's Feed - Programmer's Heaven</title>
    <link>http://www.programmersheaven.com/feed/User/537519/RSS.aspx</link>
    <description>Events at Programmer's Heaven related to the user sgtom.</description>
    <language>en</language>
    <copyright>Copyright 2013 Programmers Heaven</copyright>
    <pubDate>Tue, 21 May 2013 19:07:14 -0700</pubDate>
    <generator>Argotic Syndication Framework 2007.3.0.1, http://www.codeplex.com/Argotic</generator>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <ttl>360</ttl>
    <item>
      <title>Help with C programming</title>
      <link />
      <description>&lt;p&gt;Posted a 'new message on the C and C++ forum.&lt;/p&gt;Dear All,&lt;br /&gt;
&lt;br /&gt;
I would like the times to be sent to accumulator register when i press stop button.&lt;br /&gt;
&lt;br /&gt;
how do i go about writting a code in C for that?&lt;br /&gt;
&lt;br /&gt;
I just need the times to be stored in some register and move it to the SBUF register so we can send the times serially.&lt;br /&gt;
&lt;br /&gt;
Please help.&lt;br /&gt;
&lt;br /&gt;
Kindly find my original code below:&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;reg51.h&amp;gt;&lt;br /&gt;
#define msec 1&lt;br /&gt;
unsigned int sec1,sec2;&lt;br /&gt;
int sec1_1,sec1_2,sec2_1,sec2_2;&lt;br /&gt;
&lt;br /&gt;
unsigned int digi_val[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x1 0};&lt;br /&gt;
sbit dig_ctrl_1=P1^0; // Declare the control pins of seven segments&lt;br /&gt;
sbit dig_ctrl_2=P1^1;&lt;br /&gt;
sbit dig_ctrl_3=P1^2;&lt;br /&gt;
sbit dig_ctrl_4=P1^3;&lt;br /&gt;
sbit start_pin = P1^4; // Start pin to start the watch.&lt;br /&gt;
sbit stop_pin = P1^5; // Stop pin to stop the watch.&lt;br /&gt;
sbit reset_pin = P1^6; // Reset pin to reset the watch.&lt;br /&gt;
int s,t;&lt;br /&gt;
&lt;br /&gt;
void mplex_delay(unsigned int time) // Function to provide a time delay of approximatelty one second using Timer 1&lt;br /&gt;
{&lt;br /&gt;
int i,j;&lt;br /&gt;
for (i=0;i&amp;lt;=time;i++)&lt;br /&gt;
for(j=0;j&amp;lt;=50;j++);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void digi_out(unsigned int current_num)&lt;br /&gt;
{&lt;br /&gt;
P2=digi_val[current_num];&lt;br /&gt;
mplex_delay(msec);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void display(unsigned int dig1,unsigned int dig2) // Function to display the digits on seven segmnet. For more details refer seven segment multiplexing.&lt;br /&gt;
{&lt;br /&gt;
sec1_2=dig1%10;&lt;br /&gt;
sec1_1=dig1/10;&lt;br /&gt;
sec2_2=dig2%10;&lt;br /&gt;
sec2_1=dig2/10;&lt;br /&gt;
TMOD=0x01; //Enable Timer 0&lt;br /&gt;
TL0=0xFF;&lt;br /&gt;
TH0=0xDB;&lt;br /&gt;
TR0=1; // Triger Timer 0&lt;br /&gt;
while(TF0==0)&lt;br /&gt;
{&lt;br /&gt;
dig_ctrl_1 = 1;&lt;br /&gt;
dig_ctrl_2 = dig_ctrl_3 = dig_ctrl_4 = 0;&lt;br /&gt;
digi_out(sec1_1);&lt;br /&gt;
dig_ctrl_2 = 1;&lt;br /&gt;
dig_ctrl_1 = dig_ctrl_3 = dig_ctrl_4 = 0;&lt;br /&gt;
digi_out(sec1_2);&lt;br /&gt;
dig_ctrl_3 = 1;&lt;br /&gt;
dig_ctrl_2 = dig_ctrl_1 = dig_ctrl_4 = 0;&lt;br /&gt;
digi_out(sec2_1);&lt;br /&gt;
dig_ctrl_4 = 1;&lt;br /&gt;
dig_ctrl_2 = dig_ctrl_3 = dig_ctrl_1 = 0;&lt;br /&gt;
digi_out(sec2_2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
TR0=0;&lt;br /&gt;
TF0=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
while(1)&lt;br /&gt;
{&lt;br /&gt;
start: // Segment to start the stop watch&lt;br /&gt;
start_pin = 1;&lt;br /&gt;
stop_pin = 1;&lt;br /&gt;
reset_pin = 1;&lt;br /&gt;
dig_ctrl_1 = 0;&lt;br /&gt;
dig_ctrl_2 = 0;&lt;br /&gt;
dig_ctrl_3 = 0;&lt;br /&gt;
dig_ctrl_4 = 0;&lt;br /&gt;
P2 = 0xFF;&lt;br /&gt;
s = t = 0;&lt;br /&gt;
while(start_pin == 1)// Check if start pin is pressed&lt;br /&gt;
{&lt;br /&gt;
display(0,0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stopwatch: // Segment to stop the watch&lt;br /&gt;
for (sec1=s;sec1&amp;lt;=99;sec1++)&lt;br /&gt;
{&lt;br /&gt;
if (stop_pin == 0 ) //Check if stop pin is pressed&lt;br /&gt;
break;&lt;br /&gt;
for (sec2=t;sec2&amp;lt;=99; sec2++)&lt;br /&gt;
{&lt;br /&gt;
if (stop_pin == 0 ) //Check if stop pin is pressed&lt;br /&gt;
break;&lt;br /&gt;
t=0;&lt;br /&gt;
display(sec1,sec2);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
stop_pin = 1;&lt;br /&gt;
s = sec1;&lt;br /&gt;
t = sec2;&lt;br /&gt;
&lt;br /&gt;
while ( start_pin != 0 &amp;amp;&amp;amp; reset_pin != 0 ) //Check if start pin or reset pins are not pressed&lt;br /&gt;
{&lt;br /&gt;
display(sec1,sec2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (start_pin == 0) //Check if start pin is pressed&lt;br /&gt;
{&lt;br /&gt;
goto stopwatch;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
if (reset_pin == 0 ) //Check if reset pin is pressed&lt;br /&gt;
{&lt;br /&gt;
s = t = 0;&lt;br /&gt;
goto start;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
} &lt;br /&gt;</description>
      <pubDate>Mon, 21 Mar 2011 10:45:42 -0700</pubDate>
    </item>
    <item>
      <title>Re: Have a code in C for stopwatch design but have a few problems</title>
      <link />
      <description>&lt;p&gt;Posted a 'reply on the C and C++ forum.&lt;/p&gt;Don't use it. It's not good&lt;br /&gt;</description>
      <pubDate>Tue, 15 Mar 2011 08:08:38 -0700</pubDate>
    </item>
    <item>
      <title>Have a code in C for stopwatch design but have a few problems</title>
      <link />
      <description>&lt;p&gt;Posted a 'new message on the C and C++ forum.&lt;/p&gt;URGENT HELP REQUIRED PLZ!&lt;br /&gt;
&lt;br /&gt;
Dear Guys,&lt;br /&gt;
&lt;br /&gt;
The code I have (plz find below) gives me an aprox extra of one second when I press the stop button. eg instead of 0025 it'll display 0125 or. Always an etrxa second added.&lt;br /&gt;
&lt;br /&gt;
Also how do I alter it so that I have the displayed time &lt;br /&gt;
"sec" "mili" "mili" "mili"  instead of present "sec" "sec" "mili" "mili"&lt;br /&gt;
&lt;br /&gt;
The time is not accurate. It lags when compared to a regular stopwatch.&lt;br /&gt;
&lt;br /&gt;
I need this to be as accurate as possible.&lt;br /&gt;
&lt;br /&gt;
Your time and help is greatly appreciated.&lt;br /&gt;
&lt;br /&gt;
Best regards.&lt;br /&gt;
&lt;br /&gt;
//Program to make a stopwatch&lt;br /&gt;
&lt;br /&gt;
#include&amp;lt;reg51.h&amp;gt;&lt;br /&gt;
#define msec 1&lt;br /&gt;
unsigned int sec1,sec2;&lt;br /&gt;
int sec1_1,sec1_2,sec2_1,sec2_2;&lt;br /&gt;
&lt;br /&gt;
unsigned int digi_val[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x10};&lt;br /&gt;
sbit dig_ctrl_1=P1^0;  // Declare the control pins of seven segments&lt;br /&gt;
sbit dig_ctrl_2=P1^1;&lt;br /&gt;
sbit dig_ctrl_3=P1^2;&lt;br /&gt;
sbit dig_ctrl_4=P1^3;&lt;br /&gt;
sbit start_pin = P1^4;  // Start pin to start the watch.&lt;br /&gt;
sbit stop_pin = P1^5;  // Stop pin to stop the watch.&lt;br /&gt;
sbit reset_pin = P1^6;  // Reset pin to reset the watch.&lt;br /&gt;
int s,t;&lt;br /&gt;
&lt;br /&gt;
void mplex_delay(unsigned int time)  // Function to provide a time delay of approximatelty one second using Timer 1&lt;br /&gt;
{&lt;br /&gt;
int i,j;&lt;br /&gt;
for (i=0;i&amp;lt;=time;i++)&lt;br /&gt;
  for(j=0;j&amp;lt;=50;j++);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void digi_out(unsigned int current_num)&lt;br /&gt;
{&lt;br /&gt;
    P2=digi_val[current_num];&lt;br /&gt;
     mplex_delay(msec);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void display(unsigned int dig1,unsigned int dig2)  // Function to display the digits on seven segmnet. For more details refer seven segment multiplexing.&lt;br /&gt;
{&lt;br /&gt;
    sec1_2=dig1%10;&lt;br /&gt;
sec1_1=dig1/10;&lt;br /&gt;
sec2_2=dig2%10;&lt;br /&gt;
sec2_1=dig2/10;&lt;br /&gt;
TMOD=0x01;  //Enable Timer 0&lt;br /&gt;
TL0=0xFF;&lt;br /&gt;
TH0=0xDB;&lt;br /&gt;
TR0=1;  // Triger Timer 0&lt;br /&gt;
while(TF0==0)&lt;br /&gt;
{&lt;br /&gt;
  dig_ctrl_1 = 1;&lt;br /&gt;
  dig_ctrl_2 = dig_ctrl_3 = dig_ctrl_4 = 0;&lt;br /&gt;
  digi_out(sec1_1);&lt;br /&gt;
  dig_ctrl_2 = 1;&lt;br /&gt;
  dig_ctrl_1 = dig_ctrl_3 = dig_ctrl_4 = 0;&lt;br /&gt;
  digi_out(sec1_2);&lt;br /&gt;
  dig_ctrl_3 = 1;&lt;br /&gt;
  dig_ctrl_2 = dig_ctrl_1 = dig_ctrl_4 = 0;&lt;br /&gt;
  digi_out(sec2_1);&lt;br /&gt;
  dig_ctrl_4 = 1;&lt;br /&gt;
  dig_ctrl_2 = dig_ctrl_3 = dig_ctrl_1 = 0;&lt;br /&gt;
  digi_out(sec2_2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
TR0=0;&lt;br /&gt;
TF0=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
while(1)&lt;br /&gt;
{&lt;br /&gt;
start:  // Segment to start the stop watch&lt;br /&gt;
  start_pin = 1;&lt;br /&gt;
  stop_pin = 1;&lt;br /&gt;
  reset_pin = 1; &lt;br /&gt;
  dig_ctrl_1 = 0;&lt;br /&gt;
  dig_ctrl_2 = 0;&lt;br /&gt;
  dig_ctrl_3 = 0;&lt;br /&gt;
  dig_ctrl_4 = 0;&lt;br /&gt;
  P2 = 0xFF;&lt;br /&gt;
  s = t = 0;&lt;br /&gt;
  while(start_pin == 1)// Check if start pin is pressed&lt;br /&gt;
  {&lt;br /&gt;
  display(0,0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
stopwatch:  // Segment to stop the watch&lt;br /&gt;
  for (sec1=s;sec1&amp;lt;=99;sec1++)&lt;br /&gt;
  {&lt;br /&gt;
   if (stop_pin == 0 )  //Check if stop pin is pressed&lt;br /&gt;
   break;&lt;br /&gt;
    for (sec2=t;sec2&amp;lt;=99; sec2++)&lt;br /&gt;
    {&lt;br /&gt;
    if (stop_pin == 0 )  //Check if stop pin is pressed&lt;br /&gt;
    break;&lt;br /&gt;
    t=0;&lt;br /&gt;
    display(sec1,sec2);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  stop_pin = 1;&lt;br /&gt;
  s = sec1;&lt;br /&gt;
  t = sec2;&lt;br /&gt;
 &lt;br /&gt;
  while ( start_pin != 0 &amp;amp;&amp;amp; reset_pin != 0 )  //Check if start pin or reset pins are not pressed&lt;br /&gt;
  {&lt;br /&gt;
  display(sec1,sec2);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  if (start_pin == 0)  //Check if start pin is pressed&lt;br /&gt;
  {&lt;br /&gt;
  goto stopwatch;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
   if (reset_pin == 0 )  //Check if reset pin is pressed&lt;br /&gt;
   {&lt;br /&gt;
   s = t = 0;&lt;br /&gt;
   goto start;&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description>
      <pubDate>Sun, 13 Mar 2011 03:37:13 -0700</pubDate>
    </item>
  </channel>
</rss>