In SX Microcontrollers, SX/B Compiler and SX-Key Tool, g_daubach wrote: Peter, I almost agree with you - in the end - it's just a question of definition. IMO, any code that deals with I/O to replace a peripheral hardware found in other controllers by software can be called a "Vitual Peripheral", no matter if the associated code is fully or partly executed in the ISR, or in the main code. I found the following definition in an older Scenix document: "Virtual Peripheral concept enables the "software system on a chip" approach. Virtual Peripheral, a software module that replaces a traditional hardware peripheral, takes advantage of the Scenix architecture's high performance and deterministic nature to produce same results as the hardware peripheral with much greater flexibility. The speed and flexibility of the Scenix architecture complemented with the availability of the Virtual Peripheral library, simultaneously address a wide range of engineering and product development concerns. They decrease the product development cycle dramatically, shortening time to production to as little as a few days." I agree with you, most VPs require a deterministic timing, and thus are ISR-controlled. Those who don't, usually are structured a state machines, frequently but not necessarily periodically called from the main loop. Where is does not matter if the state machine is part the main code, or located in a separate subroutine. Important is that the code makes the SX behave as if a piece of hadware would be integrated on the chip handling this peripheral task. As mentioned in my previous post, an I²C master would be an example for a VP that does not require an exact timing, as the communication is solely controlled by the SCL signal generated from the master. ---------- End of Message ---------- You can view the post on-line at: http://forums.parallax.com/forums/default.aspx?f=7&p=1&m=103848#m104096 Need assistance? Send an email to the Forum Administrator at forumadmin@parallax.com The Parallax Forums are powered by dotNetBB Forums, copyright 2002-2006 (http://www.dotNetBB.com)