[Icc-avr] Global Interrupts

Johannes Assenbaum jassenbaum at htp-tel.de
Tue Jan 8 14:38:33 PST 2008


If back ground timer is fully hardware, then tick will be ok, only interrupt handling may be a bit later than asap.

If back ground timer is with any software, then timing may miss some timer interrupts while polling ADC and so may go wrong a bit.

Is this what you wanted to know?

Best regards,
Johannes


> 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
>   To: Discussion list for ICCAVR and ICCtiny Users. You do NOT need tosubscribe to
>   icc-announce if you are a member of this.
>   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> 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>
>       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



>       _______________________________________________
>       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





More information about the Icc-avr mailing list