[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