Mikroelektronika MIKROE-724 データシート

ページ / 726
mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
453
Soft_I2C_Break
Prototype
sub procedure Soft_I2C_Break()
Description All Software I²C Library functions can block the program flow (see note at the top of this page). Calling 
this routine from interrupt will unblock the program execution. This mechanism is similar to WDT.
Parameters None.
Returns
Nothing.
Requires
Nothing. 
Example
dim data1, error, counter as byte
sub procedure Timer1Int() org IVT_ADDR_T1INTERRUPT
  counter = 0
  if (counter >= 20)
    Soft_I2C_Break()
    counter = 0                ‘ reset counter
  else
    Inc(counter)               ‘ increment counter
  end if
 
  T1IF_bit = 0                 ‘ Clear Timer1 overflow interrupt flag
end sub
main:
  ...
  ‘ try Soft_I2C_Init with blocking prevention mechanism
  IPC0   = IPC0 or 0x1000      ‘ Interrupt priority level = 1 
  T1IE_bit = 1                 ‘ Enable Timer1 interrupts
  T1CON = 0x8030     ‘ Timer1 ON, internal clock FCY, prescaler 1:256
  Soft_I2C_Init()
  T1IE_bit = 0                 ‘ Disable Timer1 interrupts
end.
Notes
Interrupts should be disabled before using Software I²C routines again (see note at the top of this 
page).