Warning: include(../../php/hc.php): failed to open stream: No such file or directory in /home/rob46904/public_html/grayit/embedded/tips_n_code/index.php on line 4

Warning: include(../../php/hc.php): failed to open stream: No such file or directory in /home/rob46904/public_html/grayit/embedded/tips_n_code/index.php on line 4

Warning: include(): Failed opening '../../php/hc.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/rob46904/public_html/grayit/embedded/tips_n_code/index.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /home/rob46904/public_html/grayit/embedded/tips_n_code/index.php:4) in /home/rob46904/public_html/grayit/php/cookies.php on line 16
GRAYnomad :: grayit :: embedded :: tips n code
  home  general  lard  emul8or  ArdweeNET  MAXX  the QUUB  Gecko  SiiMAN
        embedded systems  PC software

As I've mentioned ad nauseam on these pages I spent years working with embedded systems, but that was a long time ago and I've forgotten a lot of things that used to be almost instinctive, not to mention that the chips and development tools are different these days.

So I'm both learning and re learning a lot, and in the process I'm stuffing up more than I used to.

When this happens, or even if just I think something would be interesting to a beginning embedded engineer/hobbyist, I'll document it here in an effort to help prevent you having the same hassle.

NOTE: In nearly all cases I discover then debug a problem using my logic analyser, I don't know how you would do this type of work without one and at US$149 for the Saleae Logic there's just no reason not to get one...is there?

Also I haven't has much luck finding very simple code snippets to get say a timer working, so I'll post that sort of thing here as well.

Interrupt overhead
Check out how much time is spent just getting into and out of an ISR.

Optimisation
See how using the compiler's optimiser can improve an ISR call.

Serial bit banging (Tx)
Using a normal port IO pin to send async serial data for chips with no UART.

Pulse generator
A simple pulse generator uses two components including the processor.

EEPROM read write
An example of a polled EEPROM reading an writing routine, actually most of the work is done by functions in the supplied eeprom.h file.

Debug routine to put a value out an IO pin
How do you see what that value is when you don't have any normal IO?

Clock /8 fuse
Why isn't my processor running as fast as it should?

Using IJMP and ICALL
Implementing indirect calls for a jump table.

Top of Page

 

  home  general  lard  emul8or  ArdweeNET  MAXX  the QUUB  Gecko  SiiMAN
        embedded systems  PC software
 

Copyright © 1973-2013 Rob Gray, All rights reserved.
PO Box 450, Gin Gin, QLD, Australia.
www.robgray.com