Archive for November 2008

Bending the laws of physics

As a reader pointed out today, when preparing one of the pictures in Chapter 3,  I did use a little trick, I had almost forgotten…

hello.GIF

I did reduce the DELAY constants by a factor of 100 to … speed things up … so to speak. Otherwise the Logic Analyzer window would not be able to contain all the samples required to produce the complete “Hello” message.

I do these things quite a bit when I use the Simulator … Read the rest of this entry »

Electronica 2008

This is the week of the Electronica 2008 in Munich (Germany) and I am available at the Microchip booth (A4-560) all week to talk about 16 and 32-bit programming but especially about flying!

If you are a PIC24 or a PIC32 pilot, don’t forget to pass by and say hello!

No secret handshakes required, just ask of Lucio…

Deep Blue PIC32

An email from Tim O. this week made me think about the possibility of computers conversing with humans, or rather the impossibility of it, as Turing once proposed it as the ultimate test of the machine intelligence.  This in turn made me think about another story that made the news a few years ago (1997) when IBMs Deep Blue computer won a historical match against the (back then) world chess champion Garry Kasparov.

Read the rest of this entry »

MIPS DSP Libraries

With the latest release of MPLAB C32 compiler v.1.04, Microchip has added a complete set of DSP functions for the PIC32 to complement the standard math libraries. Among them you will find a number of vector processing functions and as expected several different types of FFT functions. You will remember that in Chapter 7, in order to give the PIC32 some work to do while we were playing wit the cache and pre-fetch mechanism to find the optimal performance tuning, we used a FFT function. That was a simple “schoolbook” implementation of the basic algorithm in C.

If you try the new DSP library, don’t be too surprised if you discover that the speed of execution is increased by orders of magnitude. In fact the libraries are written for fractional numbers (16 and 32-bit fixed point numbers)  as most DSP algorithms do, and were hand optimized (large portions were written in assembly) by MIPS experts to obtain the maximum performance from the PIC32 instruction set.

Inexplicably Working Errata

A few days ago, I received an email from a reader who reported a new errata on page 123 (in the “Learning to fly the PIC24″ book) in the write() function, an example of redirecting the “stdout” output stream.

The function receives a pointer to a buffer containing characters that need to be forwarded to the output device of choice and a counter. A loop is performed to print sequentially the required number of characters, but (here is the bug) I apparently omitted to increment the buffer pointer.  To the reader’s greatest surprise the code example seems to work anyway! How is this possible?

Read the rest of this entry »

|