Purebasic Serial Port Example

Home

Purebasic Serial Port Example

One of the distinguishing characteristics of beginner-friendly microcontroller platforms– Arduino, PICAXE, and a few dozen others– is that they neatly wrap up and hide the nuts-and-bolts details of interfacing with the hardware. Like everything else, it’s a blessing and a curse. The benefits are clear: A new user who has just acquired an Arduino can plug it in, blink an LED, and have a working demonstration of two-way serial communication in just a few minutes.

Apr 11, 2018 - Library for use of COM objects in PureBasic, an example for using the ADODB object for accessing databases is included. Download video lagu disaat sendiri dadali. The DX9 Subsystem.

Purebasic Serial Port Example

The drawbacks are a little harder to see. When you just use one line of initialization that calls a “library,” it’s easy to overlook exactly what’s involved: how many lines of code have invisibly been added to your program?

What memory structures have been allocated? What interrupts are now going to disrupt program flow and timing? There’s also a portability issue. We often hear from people who got started with Arduino but now want to explore other AVR microcontroller systems, and don’t know how or where to start the migration process.

In what follows we discuss a minimal setup for serial communication with AVR microcontrollers, and give two example implementations, on an ATmega168 and on an ATtiny2313. While this fundamental “AVR 101” stuff, we’re approaching the problem (this time) from the migration standpoint. Suppose that you had an Arduino based project, where you relied on serial communication– using the library functions–between that hardware and your computer. From there, how would you migrate to a stand-alone AVR microcontroller with similar functionality, or even to a different microcontroller? The answers, of course, are (1) that you have to hook things up correctly and (2) it’s nice to have some simple and lightweight set of routines as a good starting point. To begin with, we need a good working cross-platform example of two-way communication between the host computer and the Arduino.

Serial port example

We chose as the starting point the sketch (example program) “Serial Call-Response” by Tom Igoe. This is actually a two-part program, where one half runs on your computer and the other half on the microcontroller. What we’re doing is to create a functional clone of the microcontroller program, that can still talk to the host-side program (which is still running in Processing on your computer).

Let’s look at the chips: We’ve drawn the ATmega168 and ATtiny2313 here, with the pinouts for power supply and the serial port transmitter (TX) and receiver (RX) pins highlighted. These are some but (probably) not all of the pins that you’ll need. For example, if you want to program the AVR in circuit, it’s often best to do that with an ISP programmer, and our article about explains how to hook one up. Back to the serial ports.

If you look in the datasheets for these chips, you’ll find each serial port labeled as a “USART,” for Universal Synchronous and Asynchronous serial Receiver and Transmitter. Now, the microcontroller USART pins are designed to operate at logic levels– between 0 and 3-5 V. This means that they can’t directly hook up to RS-232 without a level adaptor. They also aren’t set up for directly hooking to USB, so an adapter of some sort is usually needed unless you’re talking directly to another microcontroller. Our adapter of choice is the FTDI USB-TTL cable: This cable has an integrated circuit built in that translates between a microcontroller’s serial port (USART) and USB. Rasporyaditeljnoe pisjmo v strahovuyu kompaniyu obrazec. (That’s in fact the same chip that the Arduino has on board for the same reason.) Here’s how to hook it up to one of the microcontrollers: Three pins on the connector are relevant for us: TX, RX, and ground. (Ground so that your computer and microcontroller board have a common voltage reference.) The TX (transmit) pin of your microcontroller goes to the RX (receive) pin of the cable/computer, and vice versa.