Serial Communications Library -- BoostC and 16F877A

From OpenCircuits
Revision as of 07:16, 24 September 2008 by Russ hensel (talk | contribs) (→‎Features)
Jump to navigation Jump to search

Summary

  • Name: Serial Communications Library -- BoostC and 16F877A
  • Purpose: A C library ( in source code form ) for serial communications together with a program demonstrating its use.
  • Status: This page in draft. Code works but still in refinement, code available, email russ_hensel
  • Technology: BoostC and PIC 16F877A
  • Author: russ_hensel ( where you can find an email address to reach me )
  • License: not fully determined, but open source and object code.


This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: Microcontroller Serial Communications Articles


Features

Feature Details


Code is for USART hardware on PIC 16F877A. Should be fairly easy to port to similiar processors
Receive is interrupt driven. Receive should be active all the time although overrunning the buffer is possible.
Microcontroller Serial Communications Articles
Transmit is blocking. During a transmit no activities that are not interrupt driven occur.
Command interface is included. PIC is setup to receive serial commands and respond to them.
Command interface includes a stop command to halt long running operations. Character is !


Input routines for parsing and converting a numerical parameter. This makes commands like r22 able to pass the argument ( converted to binary ) to a subroutine.
Option to make single letter commands case insensitive.




Realizes a protocal similar to the one found in the link on the right. MC_RS232_Comm
Beware of negative numbers which may not be handled as you expect.




Hardware for the Program

Compiling the Program

Running the Program

Running the DemoSerial demo program ( demo is set up to be caps insensitive, if you comment out this feature use lower case commands )

Using the Library in Your Own Program

Code History

Origninal source code found, I think, on code on the SourceBoost website ( see program header for more inforation ). I have used the code on a series of different projects, it has evolvled with each one. I have added the code for a command interface, this is based on the idea that if you have serial capability then you may want to control it thru its serial connection.