Libraries




USB FAT LCD PS/2 keyb & mouse RT(C)C
Schedulers CRTOS RTOS RC5/6 Uart
Memory Menus Expanders I2c Keypad Utilities
PID Controller OW_Utilities I2c TimeOut Temp Sensors Seven Segment Display  
Rotary Encoder          

USB Libraries

Library Package file(s) Library Zip file(s)
USB_NA_pic.mpkg
USB_OA_pic.mpkg
USB_OA_PIC24.mpkg
USB_NA_PIC24.mpkg

USB_Host_PIC24F.mpkg
USB_NA_pic.zip
USB_OA_pic.zip
USB_OA_PIC24.zip
USB_NA_PIC24.zip

USB_Host_PIC24F.zip

Name Date Short description
USB HOST libraries 2017-02-16 new USB Host libraries. USB MSD Host library and USB HID host library, only for PIC24 for now.

MSD: Library for making an USB host capable of reading and writing sectors from/to USB memory sticks. To read/write actual files from/to the USB memory stick, you still need e.g. a Fat16 or Fat32 library. The lib software assumes the USB memory stick is powered from an external source.

HID: This is a library for making an USB host capable of reading and writing 64 byte packets from/to generic USB HID devices. At this moment only a version for PIC24 is available.

Adapted Fat32 driver for the mE Fat32 library
Example of usage of the MSD host library with the mE Fat32 library
Example of usage of the HID Host library

MSD Host Documentation.
HID Host Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
USB units, New Architecture (NA). 2019-04-12 Set of USB units, permits creating composite USB devices.
For example projects and documentation, see the .mpkg or the .zip files.

Note: This set of NA units will exist next to the ones already presented below. The latter are meant to create simple USB (in the sense of "non composite") devices.

Important remarks:
  • CDC devices: You need the UsbSer.sys driver (to be present in C:\Windows\System32\drivers) and the UsbSer.inf (to be present in C:\Windows\inf) file. Both can be found here in case they are missing.

  • CDC devices: Do not forget to add (if not already there) the VID and the PID of your device to the usbser.inf file (C:\Windows\inf).
    The entry in the usbser.inf file in the Windows directory has to look like:
    %DESCRIPTION%=DriverInstall, USB\VID_1234&PID_2000&MI_00

  • CDC Devices: Every time you install (plug in) a CDC device with a new VID/PID combination, windows will give it a comportnumber that was not used before, so the used number always increases. If you want you can change it to a more acceptable number using the windows 'device manager'. Portnumbers already taken can be found in the registry: see NextSerialPortNo.

  • MSD devices: The library assumes the SDMMC card is always present and writable. Also hot swap is not allowed.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Tool: TestCDC.zip, a PC CDC application (Delphi).
USB units, original architecture (OA). 2019-04-12
  • HID
    USB "HID" library.
    Creates a non composite USB HID device. Permits to read data from and write data to USB devices using the "HID" protocol (no driver at PC side required).
    For example projects and documentation, see the .mpkg or the .zip files

  • CDC
    USB "CDC" library.
    Creates a non composite USB CDC device. Permits to read data from and write data to USB devices using the CDC protocol (makes the USB device look like a serial port).
    2010-03-01: Capable of working with usbser.sys under windows (means Hyperterminal can be used), and also works under Linux (Thanks Rainer!).
    For example projects and documentation, see the .mpkg or the .zip files
    PP2 = PingPong version of the library.

    Important remarks:
    • CDC devices: You need the UsbSer.sys driver (to be present in C:\Windows\System32\drivers) and the UsbSer.inf (to be present in C:\Windows\inf) file. Both can be found here in case they are missing.
    • CDC devices: Do not forget to add (if not already there) the VID and the PID of your device to the usbser.inf file (C:\Windows\inf).
    • CDC Devices: Every time you install (plug in) a CDC device with a new VID/PID combination, windows will give it a comportnumber that was not used before, so the used number always increases. If you want you can change it to a more acceptable number using the windows 'device manager'. Portnumbers already taken can be found in the registry: see NextSerialPortNo.

  • CDC Twin
    USB "CDC Twin" library.
    Only for PIC for the moment.
    Same as above, but creates 2 virtual com ports on the PC.

    Important remark:
    Make sure there is an entry in usbser.inf for both cdc devices, e.g.
    %DESCRIPTION%=DriverInstall, USB\VID_1234&PID_2000&MI_00
    %DESCRIPTION%=DriverInstall, USB\VID_1234&PID_2000&MI_01

  • MSD
    USB "MSD" library.
    Creates a non composite USB MSD device. Makes the PIC (equipped with an SD/MMC card) look like an external drive to the PC (no driver at PC side required). For example projects and documentation, see the .mpkg or the .zip files.

    Important remarks:
    • The library assumes the SDMMC card is always present and writable. Also hot swap is not allowed.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Tool: TestCDC.zip, a PC CDC application (Delphi).
USB keyboard library, New Architecture (NA) 2011-05-08 USB keyboard library NA (new architecture).
Uses the USB_HID_Library_NA. Same specifications as the one below.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
USB keyboard library. 2011-05-03 USB keyboard library.
Supports also the "Sleep", "Wake-up" and "Power" keys.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
USB HID C ANSI mikroC Pro 2009.rar 2009-09-10 USB "HID" library, mikroC Pro 2009 version. More details...
Permits to read data from and write data to USB devices using the "HID" protocol (no driver at PC side required).
Author: Fabio Silva (alias Fabim at the mE forum).
Attention: Fabio is no longer supporting the version for mikroC 8.2.
joystick_USB_HID_C_ANSI.rar 2008-12-24 USB "HID" Joystick library, mikroC version.
Permits to read data from a Joystick using the "HID" protocol (no driver at PC side required).
Author: Fabio Silva (alias Fabim at the mE forum).

Top

FAT Libraries

Library Package file(s) Library Zip file(s)
Fat_pic.mpkg
Fat32_PIC24.mpkg
Fat_PIC32.mpkg
Fat_pic.zip
Fat32_PIC24.zip
Fat_PIC32.zip

Name Date Short description
Fat32_1 2016-02-26 Fat32 filesystem implementation, only for PIC18, PIC24 and PIC32 PIC's.

Documentation.

Attention: the name of the "Fat32" library has been changed in "Fat32_1" to avoid library manager problems when also the mE library is used.

Examples: Fat32_Find_Example , Fat32_Random_Access_Example and Fat32_Sequential_Access_Example.
Note: the examples are for Fat32_2 usage. To make them work for the Fat32_1 library delete the "File variables" of type TFileVar in declarations and function calls.

Hardware independant. Can e.g. be used in SPI (SD/MMC cards), CF (Compact flash cards) and IDE (Harddisk) projects.

Example of usage: Tftp File Server (for Fat32 cards), see PIC Projects for details. Usage Templates

Documentation: Fat32 File System Specification, filename: "fatgen103.doc", and Fat32 structure information.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Fat32_1_MD 2016-02-26 Fat32_1 for multiple Fat32 devices (e.g. an SDMMC card and a USB stick).

Usage example

Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Fat32_2 2016-02-26 Fat32 filesystem implementation for PIC18, PIC24 and PIC32.

Documentation.

Examples: Fat32_Find_Example , Fat32_Multi_File_Example, Fat32_Random_Access_Example and Fat32_Sequential_Access_Example.

Same as above but can handle more than one file at a time, in possibly different directories.
Usage Templates for this library.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Fat32_2_MD 2016-02-26 Fat32_2 for multiple Fat32 devices (e.g. an SDMMC card and a USB stick).


Usage example

Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Fat16DirLFN 2009-10-09 Same as "Fat16Dir" (see below) but for long filenames. Details...

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Fat16Dir 2009-10-10 Details...


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
IDE (Harddisk) 2010-10-03 Simple interface to access hards disks.
Usage template (ignore the Fat32 part...). IDE documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Utility Libraries

Library Package file(s) Library Zip file(s)
Utilities_pic.mpkg
Utilities_PIC24.mpkg
Utilities_PIC32.mpkg
Utilities_pic.zip
Utilities_PIC24.zip
Utilities_PIC32.zip

Name Date Short description
Button Utilities 2012-11-22 This library provides two “button” related types of behaviour that often are wanted in a project:
  • Every time a button is pushed, something must happen once, or
  • A button must be “autorepeating”: something must happen when the button is pushed and after that something must happen every xxx milliseconds as long the button is pushed.
  • A button must have 2 different functions: one function when the key is pressed for a short time, another function when the key is pressed for a long time.
Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
StrngUtils 2017-02-16 A string utility library: trim, bcd, hex, binary, delete, copy, insert, stuff, pad and safe string concatenation, insertion, copy, stuff, pad, compare, pos etc.. functions. Functions working with constant strings are also available.
Can also be used together with the Janni/Yo2lio string replacement library. (only P18)

Provides
  • (almost) all routines present in above mentioned Janni/Yo2lio string replacement library, but written in Pascal (so, also usable for P16Fxxx and P24 PIC's). Keep in mind that the number of stack levels in P16F Pic's is rather small (can be a problem when using the "real" or "float" routines).
Test Software.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
SDMMC Utilities 2011-07-11 Several SDMMC routines to calculate card size, product name etc...


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
BitUtils 2011-03-24 Functions that returns "Bit" (0 or 1) values, plus functions that return "bit masks" for bytes, words and Dwords. Additionally, procedures are provided to set, get, clear and stuff bit groups inside a byte.
Routines to mimick bit arrays and boolean arrays using only one bit per boolean.
A routine to pick some grouped bits out of a byte array is also present.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
PascalFunctions 2011-06-21 Unit with a number of "standard" Pascal functions: odd, succ, pred, abs, sqr, trunc, round, frac and int.
Also the type "Sett" (replacement for Pascal's "Set" type) is present together with its functions to be used in mP. Example of the "set" usage.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Asserts 2011-06-21 The reason for creating this unit can be found here. More details...


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Debug 2012-11-09 Permits usage of the Uart as a simple debugging data output tool, using Uartx as output device.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

PID Controller Library

Library Package file(s) Library Zip file(s)
PID_Lib_pic.mpkg
PID_Lib_PIC24.mpkg
PID_PIC32.mpkg
PID_Lib_pic.zip
PID_Lib_PIC24.zip
PID_PIC32.zip

Name Date Short description
PID_Lib 2020-05-05 A PID library with a fixed calculation time interval.
PID Documentation: here and here .
An extra article aboud PID implementation's drawbacks: here.
  • An "Integration Improvement" has been added to avoid the drawbacks of using the Integration actions (overshoot, ringing, instability, oscillating).
  • Also a "Differentiation Improvement" has been added to eliminate unnecessary delays when the error becomes smaller.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

LCD Libraries

Library Package file(s) Library Zip file(s)
LCD_pic.mpkg
LCD_PIC24.mpkg
LCD_dsPIC.mpkg
LCD_pic.zip
LCD_PIC24.zip

Name Date Short description
LCD1602_4bits 2009-02-18 Routines to handle a 2 row 16 character LCD, alternative SW interface with respect to the mE library. Code size friendly. 4 bits interface. Works for LCDs equipped with the HD44780, KS0066U or equivalent controller (the same type of LCD the MikroPascal LCD library is for).
The port used by the LCD is selectable at initialisation time.
Connection diagram . Connection diagram with LCD reset .

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
LCD_4bits 2009-06-04 Same as LCD1602_4bits above, but more generic. Capable of handling upto 4 rows of characters, and 16 or 20 columns per row. The init routine has now 1 parameter more: the number of columns.
Connection diagram and Connection diagram with LCD reset .

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
LCD_I2c 2013-03-03 Library to drive an I2c LCD. For LCD's that have the PCF2116 LCD driver.
PCF2116 datasheet.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
LCD_I2c_PCF8574 2013-03-13 Library to drive a standard LCD via I2c in stead of parallel, using the PCF8574 as I/O expander. For for LCDs equipped with the HD44780, KS0066U or equivalent controller (the same type of LCD the MikroPascal LCD library is for).
Uses the PCF8574 library.
Connection diagram and Connection diagram with LCD reset .
PCF8574 addresses.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
LCD_SPI_74HC595 2013-03-28 Library to drive a standard LCD via SPI in stead of parallel, using the 74HC(T)595 as output expander. For LCD's equipped with the HD44780, KS0066U or equivalent controller (the same type of LCD the MikroPascal LCD library is for).
74HCT 595 DataSheet.
Connection diagram and Connection diagram with LCD reset .

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

PS/2 Keyboard and Mouse Libraries

Library Package file(s) Library Zip file(s)
PS2_Keyboard_Mouse_pic.mpkg PS2_Keyboard_Mouse_pic.zip

Name Date Short description
PS/2 Keyboard library 2010-10-09 PS/2 keyboard library.
Returns the native PS/2 scan codes, no translation (except for some special scan codes, see the source file for the details).
Capable of writing to the keyboard (driving leds and giving commands to the keyboard).
Only tested on P18 with 48 MHz MCU clock (will work probably also on P16 and on lower MCU clock speeds).
Read keyboard example, Write keyboard example
Documentation: The list of the native PS/2 keyboard codes , Keyboard Scan Code Specification, Documentation about the PS/2 keyboard interface here, and here, PS/2 connector pinning + color of cable wires.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
PS/2 Mouse library 2010-08-05 PS/2 Mouse library.
Returns the Delta X (hor), the Delta Y values (vert), the Delta Z (scrollwheel) values and the button status if one of those has changed.
Only tested on P18 with 48 MHz MCU clock (will work probably also on 16 and on lower MCU clock speeds). Read Mouse example. Documentation: The PS/2 Mouse interface and command list., Documentation about the PS/2 keyboard and mouse protocol, PS/2 connector pinning + color of cable wires.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

RT(C)C Libraries

Library Package file(s) Library Zip file(s)
RTC_pic.mpkg
RTC_PIC24.mpkg
RTCC_PIC32.mpkg
RTC_pic.zip
RTC_PIC24.zip
RTCC_PIC32.zip

Name Date Short description
RTCC_P32 2015-05-15 For PIC32 only.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
RTCC_P24 2011-07-10 Usage example.

For PIC24 only.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
RTC_PCF8583P

RTC_PCF8583P_SoftI2c
2009-03-19 Basic routines to control mE's Real Time Clock (RTC) with the PCF8583P.
RTC_PCF8583P usage example, RTC_PCF8583P_SoftI2c usage example

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
RTC2_DS1307

RTC2_DS1307_SoftI2c
2014-06-22 Basic routines to control mE's Real Time Clock (RTC2) with the DS1307.
RTC2_DS1307 usage example, RTC2_DS1307_SoftI2c usage example

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
RTC_DS1307_Advanced 2014-07-11 Extended routines to control the Real Time Clock DS1307, with Daylight Saving time (SummerTime/WinterTime) possibility.
RTC_DS1307_Advanced usage example.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

RC5/RC6 Libraries

Library Package file(s) Library Zip file(s)
RC5_RC6_decoder_pic.mpkg RC5_RC6_decoder_pic.zip

Name Date Short description
Rc6_Decoder 2009-04-21 RC6 (Philips IR remote control system) decoder, decodes the Rc6 toggle, Rc6 System and Rc6 command. For the moment only RC6 "mode 0" (most used) can be decoded. Made for 36 Khz IR receivers with inverse output (= output active low), like the TSOP1736.
Usage example: Rc6_test.zip.
The decoder is interrupt based (the external interrupt is used) and uses timer 0. The current software is tuned to a CPU clock of 4 Mhz. For other clock speeds adaptations are needed (see text in the unit). RC6 Info

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Rc5_Decoder 2009-04-21 RC5 (Philips IR remote control system) decoder, decodes the Rc5 toggle, Rc5 System and Rc5 command. Made for 36 Khz IR receivers with inverse output (= output active low), like the TSOP1736.
Usage example: Rc5_test .
The decoder is interrupt based (the external interrupt is used) and uses timer 0. The current software is tuned to a CPU clock of 4 Mhz. For other clock speeds adaptations are needed (see text in the unit). RC5 Info

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Uart Libraries

Library Package file(s) Library Zip file(s)
Uart_buffered_pic.mpkg
Uart_buffered_PIC24.mpkg
Uart_buffered_pic.zip
Uart_buffered_PIC24.zip

Name Date Short description
UsartReceiver 2011-12-29 Usart Receiver routine(s) with circular receive buffer, interrupt driven. Only for PIC16 and PIC18.
Usage example.
mP projects using this library should contain a unit called "Project_Globals.mpas", holding the definition of the receiver's ring buffer size: "const UsartBuffSize = xxx;". This makes the buffersize definable for each project separately.

The mB implementation by "dangerous". Thanks!

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
UsartReceiver_P24 2011-06-23 Same as above, but for PIC24 only.
Usage example.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
SoftUartReceiver.ppas (non PRO version) 2008-08-01 Soft Uart Receiver routine(s), non blocking, using external interrupt, with circular receive buffer.
Usage example: MainSoftUartReceiver.ppas

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Memory Libraries

Library Package file(s) Library Zip file(s)
Memory_pic.mpkg Memory_pic.zip

Name Date Short description
MemManager_ 2011-04-28 Simple memory manager making dynamic variables possible in mP (procedures GetMem and FreeMem available). More details.
Usage example: Single Linked List.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
EepromVariable 2009-04-22 Procedures that write and read the content of any type of variable to/from the internal PIC Eeprom.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

RTOS Library

Library Package file(s) Library Zip file(s)
RTOS_PIC32.mpkg RTOS_PIC32.zip

Name Date Short description
RTOS

2015-08-14 Real Time Operating System.

For PIC32 only.

Documentation

RTOS can give you the potential opportunity to squeeze more from your PIC than you might expect from your current single threaded application. For example, how often do your programs spend time polling for an input or an event. If you could have the Operating System tell you when an event has taken place you could use that polling time to do other things. This applies equally well to delays. By using RTOS you can write programs which appears to be doing many things all apparently at the time. Some of this can be achieved in a single threaded program by using interrupts but by using RTOS together with interrupts you will have be able to quickly develop responsive applications which are easy to maintain.

RTOS supports the following features:
  • Task priorities
  • Pre-emptive sheduling: a (low priority) task will be interrupted by a task with higher priority
  • Automatic task switching every 10 timerticks, under interrupt (can be disabled).
  • Round Robin scheduling within tasks of the same priority.
  • Tasks can have local variables of which the values are preserved between task invocations
  • Unconditional yielding to the RTOS Scheduler
  • Timed yielding to the RTOS Scheduler (i.e. “delay” performed by the Scheduler)
  • Binary semaphores
  • Counting semaphores
  • Waiting for semaphores with or without timeout
  • Clearing semaphores
  • Starting and stopping tasks
  • Starting tasks with an initial delay
  • Signaling semaphores from within an Interrupt Service Routine
  • An “Idle” procedure can be called when no task is running (none is eligible for running)

Acknowledgement: The specification of RTOS is derived from CRTOS which in turn was derived from PRTOS which was written by John Barrat in PDS Basic.
Thanks John!



For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

CRTOS Library

Library Package file(s) Library Zip file(s)
CRTOS.mpkg
CRTOS_PIC24.mpkg
CRTOS_PIC32.mpkg
CRTOS.zip
CRTOS_PIC24.zip
CRTOS_PIC32.zip

Name Date Short description
CRTOS

2015-05-28 Cooperative Real Time Operating System.

For PIC18, PIC24, PIC24EP and PIC32.

Documentation (P18, P24, P24EP).
CRTOS for PIC32 Documentation.

CRTOS can give you the potential opportunity to squeeze more from your PIC than you might expect from your current single threaded application. For example, how often do your programs spend time polling for an input or an event. If you could have the Operating System tell you when an event has taken place you could use that polling time to do other things. This applies equally well to delays. By using CRTOS you can write programs which appears to be doing many things all apparently at the time. Some of this can be achieved in a single threaded program by using interrupts but by using RTOS together with interrupts you will have be able to quickly develop responsive applications which are easy to maintain.

CRTOS supports the following features:
  • Task priorities
  • Tasks can have local variables (only for P24)
  • Unconditional yielding to the CRTOS Scheduler
  • Timed yielding to the CRTOS Scheduler (i.e. “delay” performed by the Scheduler)
  • Binary and counting semaphores
  • Waiting for semaphores with or without timeout
  • Clearing Semaphores
  • Starting and stopping tasks
  • Delayed starting of a task
  • Signaling semaphores from within an Interrupt Service Routine
  • An "Always" procedure (only available in the P24 and the P32 versions)

Acknowledgement: The specification of CRTOS is derived from PRTOS which was written by John Barrat in PDS Basic. Also some parts of text in the documentation (CRTOS.pdf) are extracted (and are sometimes adapted) from the document “PRTOS, Real Time Operating System for Proton Development System” written by John Barrat.
John also contributed a lot to the development of the library, test projects and examples. Thanks John!


Attention for package (.mpkg) users:

After installing the package please copy all "*.inc" files from the directory "C:\Users\Public\Documents\Mikroelektronika\mikroPascal PRO for dsPIC\Packages\CRTOS_PIC24\examples\CRTOS include files" to the directory "C:\Users\Public\Documents\Mikroelektronika\mikroPascal PRO for dsPIC\Packages\CRTOS_PIC24\Uses" (PIC24 version, windows 7 example given).



Examples: The library and all examples are also available for mikroBasic, see the .zip file contents.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Scheduler Libraries

Library Package file(s) Library Zip file(s)
Schedulers_pic.mpkg
Schedulers_PIC24.mpkg
Schedulers_PIC32.mpkg
Schedulers_pic.zip
Schedulers_PIC24.zip
Schedulers_PIC32.zip

Name Date Short description
StateMachine
2012-06-23 Permits easy creation of a state machine in your project. Documentation.

Usage Example: Sourcefile, State transition diagram.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
StateMachine 2
2012-06-23 Permits easy creation of one or more state machines in your project. Allows creation of superstates (states that have their own state machine) and concurrent state machines. Documentation.


For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Cos 2011-06-25 Cos stands for Cooperative Operating System. Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Cos_TimedOnly
2012-07-03 Is a part of the "Cos" library, only timed tasks are supported here. Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
TimeBase (for time measurements) 2010-08-17 Permits elapsed time measurements in milliseconds or in seconds. One can make timemarks and afterwards ask for the time expired since that mark was taken. Needs to be called by a timer interrupt on a 1 millisecs base.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.
Timers 2012-07-17 Permits easy creation of a number of "Timers" in your project. A timer sets your boolen variable(s) to "true" after a specific time has expired. Needs to be called by a timer interrupt on a 1 millisecs base.

Usage Example: Sourcefile, State transition diagram (search for "Timers").

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

I2c Keypad Library

Library Package file(s) Library Zip file(s)
Keypad_I2c_pic.mpkg
Keypad_I2c_PIC24.mpkg
Keypad_I2c_pic.zip
Keypad_I2c_PIC24.zip

Name Date Short description
I2c 4x4 Keypad 2013-03-19 Gives the possibility to connect a 4x4 keypad (or one with less keys) to a PIC via I2c, using an PCF8574 I2c expander. This saves a lot of I/O lines from the PIC (in the parallel version 8 I/O lines are needed). Also PIC's with low pin count can handle a keypad now.
The library has the same functionality as the parallel version of mE, with one small extension: it can handle more keys pressed (the status of the 16 keys of the keypad in one word).
Connection Diagram for a 4x4 keypad. If there are less keypad columns or rows, then the free PCF8574 line(s) should be left unconnected.
PCF8574 addresses.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Expanders Library

Library Package file(s) Library Zip file(s)
Expanders_pic.mpkg
Expanders_PIC24.mpkg
Expanders_pic.zip
Expanders_PIC24.zip

Name Date Short description
PCF8574 2013-03-13 PCF8574 Library: I2c to/from 8 bits parallel. PCF8574 Datasheet.
PCF8574 addresses.
For the library software, documentation and example projects (packagefiles or zipfiles), see above.
74HCT595 2013-05-08 74HCT595: SPI 8 buts output expander. 74HCT 595 DataSheet.

For the documentation and example project, see above (only example and documentation available).
74HCT165 2013-05-08 74HCT165: SPI 8 buts input expander. 74HCT 165 DataSheet.

For the documentation and example project, see above (only example and documentation available).

Top

Menus Library

Library Package file(s) Library Zip file(s)
Menus_pic.mpkg
Menus_PIC24.mpkg
Menus_PIC32.mpkg
Menus_pic.zip
Menus_PIC24.zip
Menus_PIC32.zip

Name Date Short description
Menus 2015-06-20 Library that permits the handling of text based menus in an easy way. Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Temperature sensor Libraries DS18(B/S)20
and LM25

Library Package file(s) Library Zip file(s)
TempSensors_pic.mpkg
TempSensors_PIC24.mpkg
TempSensors_PIC32.mpkg
TempSensors_pic.zip
TempSensors_PIC24.zip
TempSensors_PIC32.zip

Name Date Short description
TempSensors:
DS18(B/S)20
and LM35
2015-07-18 The basic functions for the DS18(B/S)20 (digital temperature sensor), including string output, ready to display.
The routine(s) to drive the DS18(B/S)20 from parasite power.
Routine to convert a temperature read from a DS18B20 to a string (to e.g. display on an LCD) is also present.
An example of its usage (with more than one DS18(S)20 on the same OW bus) can be found in Ow.mpas. A more extended usage example is Thermostaat.zip . Other usage examples: Thermostat 001, Thermostat 003.

The basic functions for the LM35. Two functions to convert an ADC reading into a "Temperature", one procedure to make a displayable string out of the "Temperature". The "Temperature" value has a 0.5 degrees centigrade resolution. One of the conversion routines is very "cheap" regarding code size usage, but can only be used for 5V ADCVref and 10 bits of ADC resolution (only P16 and P18).
No float calculations used, only integer ones: limited code size usage.

Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Seven Segment

Library Package file(s) Library Zip file(s)
Seven_Segment.mpkg
Seven_Segment.zip

Name Date Short description
Seven Segment Library 2014-09-11 Provides basic functionality to drive a 4 digit common anode 7 segments display. Additionally also some high level routines are provided.
Documentation.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

OW Utilities

Library Package file(s) Library Zip file(s)
OW_Utilities_pic.mpkg
OW_Utilities_PIC24.mpkg
OW_Utilities_PIC32.mpkg
OW_Utilities_pic.zip
OW_Utilities_PIC24.zip
OW_Utilities_PIC32.zip

Name Date Short description
OW_Utilities 2015-06-25 Provides the basic one-wire search ROM and search ALARM routines, see Application note "1-Wire Search Algorithm" from Maxim.

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

I2c with Timeout routines

Library Package file(s) Library Zip file(s)
I2c_TimeOut.mpkg
I2c_TimeOut.zip

Name Date Short description
I2c with TimeOut 2020-08-09 Provides the I2c_Wr and I2c_Wr routines with timeout (so, no I2c blocking any more because a device is not present). For the moment only available for P16 and P18 with only one HW I2c on board.
Also the code has been added for controllers with more than one I2c bus (e.g. the P18F27K40).

For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top

Rotary Encoder

Library Package file(s) Library Zip file(s)
Rotary_Encoder_Pic.mpkg
Rotary_Encoder_PIC24.mpkg
Rotary_Encoder_PIC32.mpkg
Rotary_Encoder_pic.zip
Rotary_Encoder_PIC24.zip
Rotary_Encoder_PIC32.zip

Name Date Short description
Rotary Encoder 2015-03-27 Simple Rotary Encoder decoding library.

Is timer interrupt based. See the example added in the .mpkg and .zip files.

The Library is for a "Type B" rotary encoder, see figures below ( Source of figures ).

Rotary encoder types

Detail of type B signals


For the library software, documentation and example projects (packagefiles or zipfiles), see above.

Top