Editing Serial Communications Library -- BoostC and 16F877A
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
=== Summary === | === Summary === | ||
− | |||
− | |||
*Name: Serial Communications Library -- BoostC and 16F877A | *Name: Serial Communications Library -- BoostC and 16F877A | ||
− | *Purpose: A C library ( in source code form ) for serial communications ( RS232 ) together with a program demonstrating its use | + | *Purpose: A C library ( in source code form ) for serial communications ( RS232 ) together with a program demonstrating its use. |
− | *Status: This is near "final". Code works but still in refinement, | + | *Status: This is near "final". Code works but still in refinement, code available, email [[russ_hensel]] |
− | *Technology: BoostC and PIC 16F877A | + | *Technology: BoostC and PIC 16F877A |
*Author: [[russ_hensel]] ( where you can find an email address to reach me ) | *Author: [[russ_hensel]] ( where you can find an email address to reach me ) | ||
*License: not fully determined, but open source and object code. | *License: not fully determined, but open source and object code. | ||
Line 12: | Line 10: | ||
This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]] | This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Features === | === Features === | ||
Line 45: | Line 37: | ||
|Transmit is blocking. | |Transmit is blocking. | ||
|During a transmit no activities that are not interrupt driven occur. | |During a transmit no activities that are not interrupt driven occur. | ||
+ | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 53: | Line 46: | ||
|Command interface includes a stop command to halt long running operations. | |Command interface includes a stop command to halt long running operations. | ||
|Character is ! | |Character is ! | ||
+ | |||
+ | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 60: | Line 55: | ||
|-valign="top" | |-valign="top" | ||
|Option to make single letter commands case insensitive. | |Option to make single letter commands case insensitive. | ||
+ | |||
+ | |||
+ | |||
| | | | ||
<!--------------------------------> | <!--------------------------------> | ||
Line 69: | Line 67: | ||
|Beware of negative numbers which may not be handled as you expect. | |Beware of negative numbers which may not be handled as you expect. | ||
|The demo program deliberately causes overflow which may push signed number negative and make unsigned numbers roll over. | |The demo program deliberately causes overflow which may push signed number negative and make unsigned numbers roll over. | ||
− | <!-------------------------------- | + | <!--------------------------------> |
|-valign="top" | |-valign="top" | ||
| | | | ||
Line 110: | Line 108: | ||
− | [[Stepper Motor Tester]] has a Eagle file that will work for this demo. You can drop the stepper driver chip. Even the level shifter can be dropped if you use a cable with a level shifter. The circuit is an easy project to do on a proto board. | + | [[Stepper Motor Tester]] has a Eagle file that will work for this demo. You can drop the stepper driver chip. Even the level shifter can be dropped if you use a cable with a level shifter. The circuit is an easy project to do on a proto board. |
=== Compiling the Program === | === Compiling the Program === | ||
− | The code for the library and the demo program is in one zip file ( called | + | The code for the library and the demo program is in one zip file ( called .... ). Unzip into a directory of its own. Open the project file SerialDemo.__c and compile with the source boost compiler. The source files are SerialDemo.c SerialDemo.h..... |
− | I am not sure if the program is small enough to compile with the free compiler, my compiler reports a size of | + | I am not sure if the program is small enough to compile with the free compiler, my compiler reports a size of 1616 bytes of ROM, which may be small enough. |
Before compiling make sure you change the target PIC to 16F877A. | Before compiling make sure you change the target PIC to 16F877A. | ||
Line 148: | Line 146: | ||
|Print out a series of numbers using serial_print_dec | |Print out a series of numbers using serial_print_dec | ||
(The library has different version of serial_print_dec for different argument types ) | (The library has different version of serial_print_dec for different argument types ) | ||
+ | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
|h<cr> | |h<cr> | ||
|Print out a series of numbers using print_hex. | |Print out a series of numbers using print_hex. | ||
+ | |||
+ | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 166: | Line 167: | ||
|nxx<cr> | |nxx<cr> | ||
|Parse out a numeric parameter (xx) and send back to the PC as a decimal: n23<cr> returns a 23. | |Parse out a numeric parameter (xx) and send back to the PC as a decimal: n23<cr> returns a 23. | ||
− | <!-------------------------------- | + | <!--------------------------------> |
|-valign="top" | |-valign="top" | ||
| | | | ||
Line 208: | Line 209: | ||
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 the program through its serial connection. | 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 the program through its serial connection. | ||
− | |||
− | + | === Projects using this Library === | |
− | |||
− | + | [[PIC based Stepper Motor Dancing Analog Clock]] | |
− | + | [[ Stepper Motor Tester]] | |
− | |||
− | |||
=== Comment, Questions, Contributions? === | === Comment, Questions, Contributions? === | ||
− | Email me [[russ_hensel]], or use the talk page for this topic. All feedback is welcome | + | Email me [[russ_hensel]], or use the talk page for this topic. All feedback is welcome. |
− | |||
− |