This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C program Time delay help!

Dear sirs and madams

I present the following program to which i am simulating on a 8051 MCU

#include <reg51.h>

#include <stdio.h>
#define output P0

void main ()
{ unsigned int x;

while(1) { output = 1;

for(x=0; x<65000; x++) {

}

output = 0; for(x=0; x<65000; x++) {

}

}

My problem is that i am attempting to learn timing delays. For this program the P0 goes from 0 to 1 with a delay between. When i debug the program and run it with peripheral P0 open, it switches the value from 0 to 1 BUT the problem is its going to fast no matter how much delay i am putting in.

Please help me

Parents Reply Children
  • People in favour of generating nanosecond delay....answer this

    How does a CPU running on 12MHz/12 = 1MHz be able to generate delay in nano second.
    each CPU machine cycle is of 1micro second. _unless you are headbent in writing everything in nano seconds_

    is there any relation between the assembler and the 'time delay'? (as far as i know, time delays are generated on actual hardware....and assembler is a software that merely generates *.obj files which inturn are linked to generate *.hex file)

    PS: I aint any genius. hence correct me, instead of criticizing. :)