Ralf, At 15:12 04/12/96 +0100, you wrote: >Hello >I am about to start my first Pic Project. It is a small device that >should > > (1) accept digital data (numbers & strings) from a Measurement device >via RS 232 at any time. > > (2A) store the Information in memory (approx. 20 Kilobytes of data) > (2B) display the latest aquired data on a LCD display > > (3) send all data to a PC via a second RS 232 > >After reading some FAQs there remain still some questions: > >What kind of Memory should I use (lithium battery backed up static ram, >EEPROM, Flash...)? >How do I wire the memory to a PIC? Any Circuits ? > >How do I wire two RS 232 ports ( one with Hardware Handshake )? Do I need >a UART or is just a simple MAX 232 signal converter enough? >Where can I get Sourcecode for serial communications? > >Should I try to program the PIC in assembler code or in a high level >language like C? My budget is very limited, as I am a student. I would >like to get a cheap development environment with lots of information on >using it, writing pic assembler code etc.. > >Does anyone know of information on similar project? > >How can I get documentation on PICs from Germany. Do you know any >suppliers which ship to Europe, Germany? > > >Thank you for any hints. > >Again thanks and Bye > Ralf > > Ralf, Many have been trying to squeese a lot out of the PIC. On the surface your needs point to concurrent operation. I feel that if you truely need concurrency than your foundation routine/software should focus on concurrency with application routines that can 'put and get' data to the concurrent routines. A few general questions? Q: Are the two RS232 ports simplex (one way) or do they require two way handshaking. Q: What are the baud rates required from the equpiment and to the PC? Q: Is the purpose of the 20 kilobytes of data memory used to synchronise and/or for storing the equipment data and then when complete sending it to the PC? The two simplex ports with no keypad or manual user interface implies that is the case. Or does the input from the non-pc equipment stimulate the forwarding/processing of the 20 kbytes stored? Q: How much data is to be displayed on the LCD. Will it be alphameric or simply numeric data? Q: Can it be assumed the LCD is smart and is interfaced via a serial link (I2C, 8-N-1 serial async comms, other?) Whether you use a C compiler or should focus on assembler language will depend on how much concurrency is required to handle the application. C would be desireable but you real-time applications of concurrent nature tend to be better suited for a lower level language with tighter control, especially if program memory becomes an issue. A hybrid concurrency routine written in assembler could provide a foundation for C-level development. What you are looking for above is quite achievable using a low end PIC (assuming you have the I/O ports you need).The project you are taking on (as you outlined above) involves muliple interfaces and I/O support. All interfaces will undoubted be serial so put a focus on a generic serialising scheme (input and output) and tailor it to the specific serial interfaces you need. If you are handling more than two serial ports (or a full duplex port) don't rely on edge triggered interrupts if the aggregate thruput of all serial comms approach 9600 baud. Yes you guessed it RTCC and port sampling permits adding concurrency without using interrupts... ---True Concurrency is real and has been demonstated with a PIC--- Microlink Systems Ltd (in) has done much work inapplications requiring concurrent operations, all written in assembler. Unfortunately the software used is proprietary (not free or shareware). The generic concurrent operating system is pseudo multi-tasking and relies on "finite state machine" methodology. It is designed for use with a a single 16C84 or a non-interrupt 16C5x PIC. With a single PIC 16c84 at 10Mhz concurrent 4800 baud 8-bit manchester coded radio comms works concurrently with 9600 baud n-8-1 (10 bit) NRZ (aka ASCII code) comms), using both CDMA (contention) and/or polled communication diciplines. Up to three serial half duplex channels can be handled witha pic 16c84 as long as the aggregate data rate (all combined) does not exceed about 14,400 bps (and a 20mhz PIC is used). Microlink are toying with commercialising the concurrent operationg system to function as a development plateform for all times of realtime applications requiring low cost, little real-estate, and concurrency. -------------------------------------------------------------------------------- The only confidence I can add is 'true concurrency' has been achieved and that as a student it is a challenge for you to pursue it, but with a focus on what is required in terms of concurrency... Later... Dan