Showing posts with label watcom. Show all posts
Showing posts with label watcom. Show all posts

Sunday, February 13, 2011

UART - Video

In this small video, you can see a simple counter made with my UART board. The program for counting up the LEDs is running on a PC. The µC only communicates with the PC and is responsive to his commands.

Friday, January 7, 2011

UART - again

Here is a nice driver for Win2k + WinXP to enable the inportb and outporb commands under those systems: porttalk
This can be quite usefull, if you have old software, and you must work with those software - somehow.
The driver is quite nice. It works perfectly with my UART Testboard  example program (number 3).
I converted it from linux to Open Watcom (16 bit Dos).

Here is the output:

C:\Dokumente und Einstellungen\xxxx>D:\Programme\porttalk\AllowIo.exe D:\Program
me\WATCOM\projects\uart\test3\test3.exe
AllowIO for PortTalk V2.0
Copyright 2002 Craig Peacock
http://www.beyondlogic.org
Executing D:\Programme\WATCOM\projects\uart\test3\test3.exe with a ProcessID of
2089937184
PortTalk Device Driver has set IOPM for ProcessID 2089937184.

C:\Dokumente und Einstellungen\xxxx>

~RS232 Testboard~
Testing all possible combinations...

Handshake is: off
2400 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
2400 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
2400 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 0, hs: false... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 1, hs: false... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 2, hs: false... Device error: '0x00' UART error: 0x0000
Handshake is: on
2400 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
2400 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
2400 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
4800 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
9600 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
14400 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
19200 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
28800 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
38400 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
57600 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 0, hs: true... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 1, hs: true... Device error: '0x00' UART error: 0x0000
115200 Baud, p.: 2, hs: true... Device error: '0x00' UART error: 0x0000
End.

Monday, December 27, 2010

UART toy - part 3

And another part (not the last one) of my UART series.
Here is a piece of code for the PC to establish a connection to the RS232 testboard and to communicate with it..
http://sites.google.com/site/species0x2118/testboard.zip

It is just an example how to interface with the board and not a complete library. The example application sets the outputs, reads in the inputs, reads the analog input and calculates the voltage on that pin. Everything with hardware handshake.
But you need the right cable for the handshake. Otherwise change the "true" in the uartSend commands to "false" and delete the handshake activation.

The software is tested under DOS with TurboC and under Ubuntu Linux with GCC. The source compiles with Open Watcom too - but the Watcom binary is not tested under DOS yet.
I changed the compiler preprocessor macros for the recognition of operating systems and compilers several times - but did not test every combination with every operatin system and every compiler. Perhaps you need to figure out the correct setup for your system (or just delete the stuff you do not need).

It took me several hours to figure out, that linux needs an activated FIFO control register. Otherwise the data transmission will fail in 99% of the cases.