AW: [Icc-avr] Software Delay

Daub, Stephan stephan.daub at sap.com
Tue Jan 8 08:45:31 PST 2008


Hi andy,

To determine the length of the loop you simpy add the inner loop maschine cycles plus the entry cycles plus for/while time. Once you have calc this you multiply this with your systemclock and youre done.

Best, stephan

-----Original Message-----
From: icc-avr-bounces at imagecraft.com <icc-avr-bounces at imagecraft.com>
To: Discussion list for ICCAVR and ICCtiny Users. You do NOT needtosubscribeto icc-announce if you are a member of this. <icc-avr at imagecraft.com>
Sent: Tue Jan 08 17:18:10 2008
Subject: [Icc-avr] Software Delay

Hi,
 
I need a good software time delay that sit's in an interrupt handler. Basically i need it to de-bounce a pin (INT1). and i cannot use a timer as the timer interrupts are disabled at this point in the code.
 
I was thinking of using : -
 
#pragma interrupt_handler int1_isr:iv_INT1
void int1_isr(void)
{

delay_2();

}

 

//-----------------------------------------------------------------------------
//
// Function name : Delay_2
//
// Returns : None
//
// Parameters : None
//
// Purpose : De-Bouce delay 
//
//-----------------------------------------------------------------------------
void delay_2 (void)
{

for (loop_int = 0; loop_int < 100; loop_int++)
{
NOP();
}

loop_int = 0x00;

}

 

Only probem is that i have no clue how long this delay is? ( i am running the main clock at 8Mhz)

 

Does anydy have a better software delay function.

 

Andy 




More information about the Icc-avr mailing list