Poprzedni temat «» Następny temat
Eclipse, kompilacja kodu w C dla ATmega328P 8MHz, ArduinoUno
Autor Wiadomość
mes mariusz 
Nowy na forum


Dołączył: 09 Cze 2016
Posty: 11
Skąd: Wrocław
  Wysłany: 2016-07-08, 20:26   Eclipse, kompilacja kodu w C dla ATmega328P 8MHz, ArduinoUno

Witam.

Konfigurując po raz pierwszy środowisko Eclipse zauważyłem, że istnieje możliwość wyboru programatora, który poradzi sobie z bootloaderem Arduino.




Wyklepałem więc w Eclipse kod zgodny z Arduino UNO:

Kod:
/*
 * main.c
 *
 *  Created on: 7 lip 2016
 *      Author: Mariusz
 */
#include <avr/io.h>
#include <util/delay.h>

int main (void) {
    while(1) {
        PORTB = _BV(PB0);
        _delay_ms(250);
        PORTB = 0;
        _delay_ms(250);
    }
}



Następnie ustawiłem procesor i kwarc na zgodne w tym co na Arduino:




Kompiluję:




Flashuję Arduino:




Cały log z operacji:

Kod:

Launching D:\Mariusz\Zapisane\Eclipse-BlueBook-AvrDude\avrdude -pm328p -carduino -PCOM3 -Uflash:w:00_TEST_BLINK_LED.hex:a
Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "00_TEST_BLINK_LED.hex"
avrdude: input file 00_TEST_BLINK_LED.hex auto detected as Intel Hex
avrdude: writing flash (176 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 176 bytes of flash written
avrdude: verifying flash memory against 00_TEST_BLINK_LED.hex:
avrdude: load data flash data from input file 00_TEST_BLINK_LED.hex:
avrdude: input file 00_TEST_BLINK_LED.hex auto detected as Intel Hex
avrdude: input file 00_TEST_BLINK_LED.hex contains 176 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 176 bytes of flash verified

avrdude done.  Thank you.

avrdude finished


Kompiluje i programuje się poprawnie.

A mimo to, program w arduino nie działa.


Co dziwne, identyczny kod, skompilowany w AtmelStudio wgrywa się do Arduino, i działa na Arduino poprawnie.



Ciekawe, prawda?

Czyżby Eclipse miał problem z kompilacją dla ATmega328P ?
 
     
grzegorzn
Nowy na forum


Dołączył: 14 Cze 2016
Posty: 5
Skąd: Warszawa
Wysłany: 2016-07-09, 10:28   

Po pierwsze to nie Eclipse kompiluje, tylko GCC, które jest również w Atmel Studio. Nie jest to więc kwestia kompilatora.
Po drugie kod nie jest identyczny, pisząc w Eclipse zapomniałeś o DDRB i dlatego Ci nie działa :)
 
     
mes mariusz 
Nowy na forum


Dołączył: 09 Cze 2016
Posty: 11
Skąd: Wrocław
Wysłany: 2016-07-09, 12:55   

grzegorzn napisał/a:
Po drugie kod nie jest identyczny, pisząc w Eclipse zapomniałeś o DDRB i dlatego Ci nie działa :)


Racja, teraz widzę. Sprawdzę, jak tylko dotrę do komputera. Nie mam pojęcia jak doszło do zgubienia linii. Jestem przekonany, że robiłem ctrl-c, ctrl-v z jednego środowiska w drugie.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,02 sekundy. Zapytań do SQL: 11