19 of 286
5 transmitted by channels 3-6, having interrupts disabled for more than about 10% of the bit time may cause the receiver to lose synchronization. For reference purposes, the table below indicates which I/O routines disable interrupts for the duration of their execution. See the individual descriptions for more detailed information. System Library Routines that Disable Interrupts CountTransitions I2CPutByte RCTime DACPin PlaySound Reset1Wire FreqOut PulseIn ShiftIn Get1Wire PulseOut ShiftInEx Get1WireByte Put1Wire ShiftOut Get1WireData Put1WireByte ShiftOutEx I2CCmd Put1WireData I2CGetByte PutDAC Interrupt Service Routines For the native code devices (e.g. ZX-24n), a few interrupt service routines (ISRs) are always included in your program (e.g. for Com1 and the RTC) while others are included only if certain System Library routines are used in your program. In some cases, the additional ISRs that are included when a specific System Library routine is used depends on how the routine is invoked and what the compiler can deduce regarding which ISRs might be needed. For example, if OpenCom() is invoked one or more times but the compiler can determine that the Com1 is always the channel being used, no additional ISRs are included since the Com1 ISRs are always included. On the other hand, if the compiler cannot determine which channel is being opened in one or more cases, it includes the ISRs for all Com channels, both hardware- based and software-based channels. In the description of each System Library routine, information is given about the set of ISRs might be included in your program if you use that routine. This information is only important, of course, if you are also providing one or more ISRs in your code because conflicts may arise. (See the section entitled “Defining Interrupt Service Routines” in the ZBasic Language Reference Manual for more information on how this is done.) The table below gives an overview of which System Library routines may cause ISRs to be included atomatically in your program. The shaded entries represent ISRs that are always included. System Library Routines that May Load ISRs Routine mega644P mega128 mega1281 mega1280 ADCToCom1() Timer1_CompA Timer1_CompA Timer4_CompA Timer4_CompA Com1ToDAC() Timer1_CompA Timer1_CompA Timer4_CompA Timer4_CompA InputCapture() Timer1_Capt Timer1_Ovf Timer1_Capt Timer1_Ovf Timer3_Capt Timer3_Ovf Timer1_Capt Timer1_Ovf Timer3_Capt Timer3_Ovf Timer1_Capt Timer1_Ovf Timer3_Capt Timer3_Ovf Timer4_Capt Timer4_Ovf Timer5_Capt Timer5_Ovf OpenCom() USART0_RX USART0_TX USART0_UDRE USART1_RX USART1_TX USART1_UDRE USART0_RX USART0_TX USART0_UDRE USART1_RX USART1_TX USART1_UDRE USART0_RX USART0_TX USART0_UDRE USART1_RX USART1_TX USART1_UDRE USART0_RX USART0_TX USART0_UDRE USART1_RX USART1_TX USART1_UDRE USART2_RX USART2_TX USART2_UDRE USART3_RX USART3_TX USART3_UDRE