[Icc-avr] Global Interrupts

Michael Dipperstein MDipperstein at CalAmp.com
Tue Jan 8 14:44:18 PST 2008


The timer will keep running when you disable interrupts.  When it
overflows the overflow flag will be set and the timer will continue to
run.  If the overflow flag is set when you re-enable your interrupts,
your code will immediately jump to the ISR that handles the timer
overflow.

 

If you want the timer to stop before you read your ADC channels and
continue when you're done, you should stop and start the timer instead
of disabling and enabling interrupts.  The data sheet is the place to go
to see how that's done.

 

-Mike

 

-----Original Message-----
From: icc-avr-bounces at imagecraft.com
[mailto:icc-avr-bounces at imagecraft.com] On Behalf Of Andrew
Sent: Tuesday, January 08, 2008 1:55 PM
To: Discussion list for ICCAVR and ICCtiny Users. You do NOT
needtosubscribeto icc-announce if you are a member of this.
Subject: [Icc-avr] Global Interrupts

 

Hi,

 

i have an ADC connect to my  system using SPI and in the back ground a
tick timer overflow interrupt (100ms). when i call my read ADC function
to avoid any interrupts messing things i was going to do the follwing: -

 

CLI(); // Disable all interrupts
Get 4 Channels of results

SEI(); // Re-enable interrupts

 

My question is will doing that screw the timer up or will it carry on
from where it left off after i re-enable the interrupts.

 

Andy 

	----- Original Message ----- 

	From: Paul Mateer <mailto:paul.aa9gg at gmail.com>  

	To: Discussion list for ICCAVR and ICCtiny Users. You do NOT
need tosubscribe to icc-announce if you are a member of this.
<mailto:icc-avr at imagecraft.com>  

	Sent: Tuesday, January 08, 2008 8:13 PM

	Subject: Re: [Icc-avr] Software Delay

	 

	...then I test dbc_kpd for my keypress.
	
	

	On Jan 8, 2008 11:31 AM, Paul Mateer <paul.aa9gg at gmail.com>
wrote:

	Keybounce "delays" can get you into trouble sometimes.  I use
this code placed into an timer-overflow interrupt:
	
	#define KEYPADS       PINH
	unsigned int dbc_j, dbc_i, dbc_idx, dbc_kpd,State[10];   //
key-debounce stuff 
	
	interrupt routine()
	{
	  // begin new keypad debounce routine 
	    State[dbc_idx] = KEYPADS & 0xFF;
	    ++dbc_idx;
	    dbc_j = 0xff;
	    for(dbc_i=0; dbc_i < 4; dbc_i++) dbc_j = dbc_j &
State[dbc_i];  
	    dbc_kpd = dbc_j;
	    
	    if(dbc_idx >= 5) dbc_idx = 0; 

	
	}

	On Jan 8, 2008 10:45 AM, Daub, Stephan < stephan.daub at sap.com
<mailto:stephan.daub at sap.com> > wrote: 

	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 <mailto: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 <mailto: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
	
	

	_______________________________________________
	Icc-avr mailing list
	Icc-avr at imagecraft.com
	http://dragonsgate.net/mailman/listinfo/icc-avr

	
	
	

	-- 
	Paul Mateer, AA9GG 
	Elan Engineering Corp.
	www.elanengr.com 

	
	
	
	-- 
	Paul Mateer, AA9GG
	Elan Engineering Corp.
	www.elanengr.com 

	
________________________________


	_______________________________________________
	Icc-avr mailing list
	Icc-avr at imagecraft.com
	http://dragonsgate.net/mailman/listinfo/icc-avr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://dragonsgate.net/pipermail/icc-avr/attachments/20080108/94627cd4/attachment.html


More information about the Icc-avr mailing list