Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/26/07 10:44
Read: times


 
#131545 - INT0 is assigned to P0.1 as the default
Responding to: ???'s previous message
mov IE, #0D1h
mov IP, #0D0h
mov IT01CF, #007h //active low on P0.7

/INT0 is assigned to P0.1 as the default after power-on reset.
And it stays there until it is moved to P0.7 by "mov IT01CF, #007h" line.
Therefore, you must "mov IT01CF, #007h" line to early stage of the initialization, at least before enabling interrupt.

When P0.1 is kept low, clearing IE0 doesn't work.
/INT0 is set to active low (IN0PL, IT01CF.3), level trigger (IT0, TCON.0) as the default.
IE0 stays asserted in this setting, even if the firmware deserts it.

From your post, it is not clear why P0.1 is kept low.
In your code, SPI0 interrupt is enabled. So, I suppose SPI0 is assigned to the crossbar.
Then P0.1 is attached to MISO of SPI0. MISO may be driven low by an external SPI device.

SiLabs chip is equipped on-chip debugger. To trace this kind of error, use it effectively.
Show TCON in the timer SFR window, to detect when IE0 bit is asserted.
'View' menu > 'Debug Windows' > 'SFRs' > Timers
Set a break point on your code and run to the break point.
Then, execute the code line by line using step execution and find where IE0 bit is asserted.

Tsueno

List of 19 messages in thread
TopicAuthorDate
External Interrupt triggering on initialization            01/01/70 00:00      
   Simple!            01/01/70 00:00      
      yes, but.....            01/01/70 00:00      
         There's probably a good reason.            01/01/70 00:00      
            worth a shot...but            01/01/70 00:00      
               Understanding interrupts            01/01/70 00:00      
                  Yes, I Know            01/01/70 00:00      
                     terse response            01/01/70 00:00      
            tried clr IE0...            01/01/70 00:00      
               clr IE ??            01/01/70 00:00      
                  I do not use the SILabs deviates, but            01/01/70 00:00      
                     Interesting....            01/01/70 00:00      
                        AH, now we get a good guess at the reason. The ex            01/01/70 00:00      
                           Maybe it is the part            01/01/70 00:00      
                              are you sure            01/01/70 00:00      
                                 hmmm.....            01/01/70 00:00      
                                    Hardware bug            01/01/70 00:00      
                                       down memory lane            01/01/70 00:00      
               INT0 is assigned to P0.1 as the default            01/01/70 00:00      

Back to Subject List