![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
Stuffed-Bit
Joined: 07 Jul 2006 Posts: 9 Location: US
|
Share RS232 pins with LED status pins using software UART? |
Posted: Mon Apr 17, 2017 9:20 am |
|
|
I want to share RS232 pins with LED's on an 8-pin chip without hardware UART. Detailed description of what I'm trying to accomplish below. How do I use the RS232 pins for serial communications, then disable the software UART and use the same two pins to control LED's. Looks like "setup_uart(0)" is exactly what I need but manual states "This function is only available on devices with a built in UART" and I'm using software UART. Would USE RS232() FLOAT_HIGH or NOINIY work for my needs? If so please explain or an example program would be great. The manual does not explain clearly the differences between HW and software UART usage. My current need is to disable and never re-enable the software UART, but it would be good to also know how to re-enable it as well.
My goal is to have user configurable parameters that will store in internal EEPROM. This will probably be a one time configuration for the user, and rarely need change again if ever. At chip power on I will display a menu over RS232 and wait for some character, probably a "*" or something. If I receive the character over RS232 then the program will prompt for parameters and update configuration setting in the EEPROM. If nothing is received over RS232 within say 5 seconds the RS232 will be disabled and the program run as normal displaying status on the LED's. Normally nothing will be attached to the RS232/LED pins except the LED's, the user will have to manually attach a TTL level converter or move jumpers to connect a RS232/TTL level converter chip to the PIC. If I end up with a free pin I may use a jumper to put the chip into configuration mode, but either way I need to share the RS232 and LED pins. Chip I'm planning on using is an older PIC12F683, because I have a lot of them on hand.
I have searched but have not found an answer, sorry if this has already been answered and I missed it. |
|
![](templates/subSilver/images/spacer.gif) |
jeremiah
Joined: 20 Jul 2010 Posts: 1329
|
|
Posted: Mon Apr 17, 2017 3:11 pm |
|
|
I may be confused about what you are asking, but why not simply use output_high() or output_low() on the pins you have for the LED's when you are finished using the UART? A software UART isn't a peripheral, it's just logic driving IO's, so when you aren't calling UART functions, it doesn't control the pins. If it were a hardware UART where a peripheral had control of the pins, then you would need to do something special, such as disable the UART. With software UARTs there is nothing to disable.
Code: |
call_some_function_that_does_sw_uart_stuff();
//now done with the UART
output_low(YOUR_TX_PIN); //set your LED state
|
Am I misunderstanding? |
|
![](templates/subSilver/images/spacer.gif) |
Stuffed-Bit
Joined: 07 Jul 2006 Posts: 9 Location: US
|
|
Posted: Thu Apr 20, 2017 10:50 pm |
|
|
jeremiah wrote: | Am I misunderstanding? |
Nope, you were correct. I set this up and tested and it works exactly like you said. From reading I was under the impression that once the compiler configured the serial pins it kept control of them. Guess that is more of how the compiler works with the hardware UART.
Anyway, thanks for the reply and verify how the software UART works. |
|
![](templates/subSilver/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|