mikroC Pro for PIC compiler includes a set of built-in library functions that can be used in programs. A list of these functions are given in Table 3.8. There is no need to use header files, except for the functions Lo, Hi, Higher and Highest, where the header file build_in.h should be included in the program. Built-in functions are implemented as inline, that is the function code is generated at the point of declaration in the program and the function is not called. The only exceptions to this rule are functions Vdelay_ms, Delay_Cyc and Get_Fosc_kHz.
Function | Description |
Lo | Returns the lowest byte of a number (bits 0 to 7) |
Hi | Returns next to the lowest byte of a number (bits 8 to 15) |
Higher | Returns next to the highest byte of a number (bits 16 to 23) |
Highest | Returns the highest byte of a number (bits 24 to 31) |
Delay_us | Creates software delay in microsecond units |
Delay_ms | Creates constant software delay in millisecond units |
Vdelay_ms | Creates delay in milliseconds using program variables |
Delay_Cyc | Creates delay based on microcontroller clock |
Clock_Khz | Returns microcontroller clock in KHz |
Clock_Mhz | Returns microcontroller clock in MHz |
Functions Lo, Hi, Higher and Highest are used to extract bytes from integers and long integers, as shown in the following example:
Functions Delay_us and Delay_ms can be used to generate microseconds and seconds delays in programs. For example, to generate a 1 second delay, we can write:
Function Vdelay_ms is similar to Delay_ms, but here the delay count is a variable, as shown in the following example:
Function Delay_Cyc generates a delay based in the microcontroller clock. The generated delay lasts for 10 times the function parameter in microcontroller cycles. In the following example, the generated delay is 100 microcontroller clock cycles:
Functions Clock_kHz and Clock_Mhz return the microcontroller clock frequency in kHz and in Mhz, respectively, nearest to an integer. These functions have no parameters. An example use is shown below:
18.222.133.206