Embedded Programming
During this week I have to work with the card that was made two weeks ago in the electronics production task, and I have to program it in many different programming languages as possible.
 
     
                 
       
                
I divided the task of the week in 3 different programming languages:
1. Assembly Language
2. Language C
3. Language Arduino
1. - Assembly Language
The code used is:
- /* LED.asm
- * Created: 10/05/2013 09:37:50 a.m.
- * Author: FABLAB México (FABMEX) */
- .include "tn44Adef.inc"
- .def conf = R16
- .def entrada = R17
- .org 0x0000 rjmp RESET
- RESET:
- ldi conf, 0b00000100//0xFF
- out DDRA, conf
- ldi conf, 0xFF
- out DDRB, conf
- clr conf
- INICIO:
- in entrada, PINA
- ror entrada
- out PORTA, entrada
- rjmp inicio
Download
                  files Assambly Languaje (AVR Studio 6)
              
2. - Language C
The code used is:
/* BotonLed.c
* Created: 14/05/2013 11:33:06 a.m.
* Author: FABLAB México (FABMEX) */
#include <avr/io.h>
#include <util/delay.h>
int main(void)
                
              
{
DDRA = 0b00000100;
DDRB = 0xFF;
       PORTA &=
              ~(1<<PA2); // PORTA =
                0b0000 0100;
              
while (1)
{
             if (PINA
              & (1<<PA3)) //pulsado
                if (PINA = scanf (PORTB) & 0b0000 1000)
              
PORTA = 0b00000100; //enciende el led
else
PORTA = 0b00000000; //0x00; //apaga el led
}
}
Download
                files Languaje C (AVR Studio 6)
            
To program in these two different languages I used AVR Studio 6, which runs on Windows and has its own programming module (if using a commercial programmer ATMEL). I used it because facilitates the creation of the code C and/or the assembler that highlights and auto completes the commands.


AVR Studio 6
To verify that both of the codes in the Assembly Language and Language C were, I used a simulator (Proteus 7 "trial license") to observe that both codes were working.
Simulation
              without pressing the button
            

Simulation by pressing the button

Download files
                Simulation (Proteus 7)
            
To load the code in the Assembly Language to the microcontroller I used the AVR Studio 6 module, and the AVRISP mkii programmer, and I could not find how to load it from the avrdude; however, to program the C code I have used avrdude with the FabISP, and that is why I created the FabISP in the task 4.


   
                  Programming Module  AVR
                  Studio 6                                            avrdude 
            
3. - Language Arduino
For this language I use the sample code that comes with the arduino program, changing the programmer and the card to use, for this I based in the tutorial of Anna Kaziunas
http://www.as220.org/fabacademy/tutorials/embedded_programming_arduinoIDE.php
 
 

            And the result
              that I got with the 3 codes is the following: