Wednesday, February 27, 2013

Non block Interrupt + USART AVR Communication

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=60207&start=0
Embedded State Machines Implementation

http://isa.uniovi.es/docencia/redes/EmbeddedSatateMachinesImplementation.pdf

AVR ADC Example

Input Scanning
http://www.electronics-base.com/index.php/avr-tutorials/analog-digital-converter-adc/102-avr-adc-inputs-scanning-example

ADC atmega 328
http://www.embedds.com/adc-on-atmega328-part-1/

Multiple Channels
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=101325

AVR-GDB AVaRICE

http://winavr.sourceforge.net/AVR-GDB_and_AVaRICE_Guide.pdf

AVR "lost bytes"

Stackexchange:


http://robotics.stackexchange.com/questions/99/how-to-manage-interrupts-on-an-avr

Linear Algebra Preliminaries and Set Theory

http://www.egr.msu.edu/classes/me851/jchoi/lecture/Linear_Algebra_Notes_Packard.pdf

Tuesday, February 26, 2013

Interrupt and GCC Optimizer

http://web.engr.oregonstate.edu/~traylor/ece473/lectures/interrupts.pdf

Volatile Variable

Generally speaking, the volatile keyword is intended to prevent the compiler from applying any optimizations on the code that assume values of variables cannot change "on their own."

--Wikipedia


C's volatile keyword is a qualifier that is applied to a variable when it is declared. It tells the compiler that the value of the variable may change at any time--without any action being taken by the code the compiler finds nearby. The implications of this are quite serious. However, before we examine them, let's take a look at the syntax.

How to USE c volatile Keywords:

http://www.barrgroup.com/Embedded-Systems/How-To/C-Volatile-Keyword

Nested Interrupt ARM Example

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka11008.html

error: stray '\327' in program

stray \ in program

http://cboard.cprogramming.com/c-programming/117316-c-compiling-error-stray-%91%5C%92-program.html

Copy code:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=60561&start=0

Monday, February 25, 2013

uno with winavr

Sample Code:

http://www.jayconsystems.com/forum/viewtopic.php?f=23&t=4

short tutorial:
http://winavr.sourceforge.net/install_config_WinAVR.pdf


AVRdude/Megunolink uploading and Atmel Studio intergration

Atmel Studio
http://www.hilltop-cottage.info/blogs/adam/?p=211

AVR dude
http://www.ladyada.net/learn/avr/avrdude.html

Saturday, February 23, 2013

DDR register

http://www.edaboard.com/thread79556.html

Double Data Rate register FPGA

matlab plotting Arduino data

Arduino Data logging with :
MegunoLink

Tutorial:
http://tronixstuff.wordpress.com/2012/06/27/improving-arduino-to-pc-interactions-with-megunolink/

Read data text file into Matlab 
http://www.blueleafsoftware.com/Resources/EmbeddedSand/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial)

Monitor: Data Collection Portal


Log/Tab Enable start

Friday, February 22, 2013

Arial LaTeX

http://tex.stackexchange.com/questions/23957/how-to-set-font-to-arial-throughout-the-entire-document

Wednesday, February 20, 2013

Embedded C programming and Freescale MCU

Embedded C Programming Training
http://www.freescale.com/files/training/doc/dwf/AMF_ENT_T0001.pdf

App Notes
http://www.freescale.com/files/microcontrollers/doc/app_note/AN2616.pdf

C for embedded system
http://www.eckhard-gosch.de/download/C_for_Embedded.pdf

ATMega/Arduino Pullup Resistor

http://hifiduino.blogspot.com/2009/04/atmega-io-pull-up-resistor.html

Tuesday, February 19, 2013

C reverse bits in unsigned integer and All about BITS TWIDDLE HACKS

http://graphics.stanford.edu/~seander/bithacks.html
http://stackoverflow.com/questions/9144800/c-reverse-bits-in-unsigned-integer

Reversing the bits in a word is annoying and it's easier just to output them in reverse order. E.g.


void write_u32(uint32_t x)
{
    int i;
    for (i = 0; i < 32; ++i)
        putchar((x & ((uint32_t) 1 << (31 - i)) ? '1' : '0');
}
Here's the typical solution to reversing the bit order:
uint32_t reverse(uint32_t x)
{
    x = ((x >> 1) & 0x55555555u) | ((x & 0x55555555u) << 1);
    x = ((x >> 2) & 0x33333333u) | ((x & 0x33333333u) << 2);
    x = ((x >> 4) & 0x0f0f0f0fu) | ((x & 0x0f0f0f0fu) << 4);
    x = ((x >> 8) & 0x00ff00ffu) | ((x & 0x00ff00ffu) << 8);
    x = ((x >> 16) & 0xffffu) | ((x & 0xffffu) << 16);
    return x;
}