attiny2313, arduino ide, irremote

Chciałbyś coś zrobić, ale nie wiesz jak? Pytaj śmiało.
ODPOWIEDZ
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 26 lut 2016, 00:02

Witam, mam następujący problem, kiedy chce wgrac poprzez usbasp dany programik na attiny2313 (na arduino dziala dobrze) to wywala mi następujący błąd:

Arduino:1.6.7 (Windows 8.1), Płytka:"ATtiny x313, ATtiny2313 @ 8 MHz"

Uwaga: platform.txt z rdzenia 'Arduino AVR Boards' zawiera przestarzałe compiler.path={runtime.ide.path}/hardware/tools/avr/bin/, przekonwertowane automatycznie na compiler.path={runtime.tools.avr-gcc.path}/bin/. Rozważ uaktualnienie tego rdzenia.
Uwaga: platform.txt z rdzenia 'Arduino AVR Boards' zawiera przestarzałe tools.avrdude.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/avrdude, przekonwertowane automatycznie na tools.avrdude.cmd.path={path}/bin/avrdude. Rozważ uaktualnienie tego rdzenia.
Uwaga: platform.txt z rdzenia 'Arduino AVR Boards' zawiera przestarzałe tools.avrdude.config.path={runtime.ide.path}/hardware/tools/avr/etc/avrdude.conf, przekonwertowane automatycznie na tools.avrdude.config.path={path}/etc/avrdude.conf. Rozważ uaktualnienie tego rdzenia.
Uwaga: platform.txt z rdzenia 'Arduino AVR Boards' zawiera przestarzałe recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}", przekonwertowane automatycznie na recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". Rozważ uaktualnienie tego rdzenia.
In file included from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24:0,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp: In member function 'void IRrecv::enableIRIn()':

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:246:3: error: 'TCCR2A' was not declared in this scope

TCCR2A = _BV(WGM21); \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/WProgram.h:8,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/Arduino.h:4,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:246:16: error: 'WGM21' was not declared in this scope

TCCR2A = _BV(WGM21); \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

In file included from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24:0,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:247:3: error: 'TCCR2B' was not declared in this scope

TCCR2B = _BV(CS21); \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/WProgram.h:8,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/Arduino.h:4,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:247:16: error: 'CS21' was not declared in this scope

TCCR2B = _BV(CS21); \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

In file included from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24:0,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:248:3: error: 'OCR2A' was not declared in this scope

OCR2A = TIMER_COUNT_TOP / 8; \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:249:3: error: 'TCNT2' was not declared in this scope

TCNT2 = 0; \

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:120:2: note: in expansion of macro 'TIMER_CONFIG_NORMAL'

TIMER_CONFIG_NORMAL();

^

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:222:30: error: 'TIMSK2' was not declared in this scope

#define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A))

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:123:2: note: in expansion of macro 'TIMER_ENABLE_INTR'

TIMER_ENABLE_INTR;

^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/WProgram.h:8,

from C:\Program Files (x86)\Arduino\hardware\tiny\avr\cores\tiny/Arduino.h:4,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h:24,

from C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:1:

C:\Program Files (x86)\Arduino\libraries\IRremote\IRremoteInt.h:222:43: error: 'OCIE2A' was not declared in this scope

#define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A))

^

C:\Program Files (x86)\Arduino\libraries\IRremote\irRecv.cpp:123:2: note: in expansion of macro 'TIMER_ENABLE_INTR'

TIMER_ENABLE_INTR;

^

Znaleziono wiele bibliotek w "IRremote.h"
Wykorzystane: C:\Program Files (x86)\Arduino\libraries\IRremote
Nie wykorzystane: C:\Program Files (x86)\Arduino\libraries\RobotIRremote
exit status 1
Błąd kompilacji.



czy byłby ktos wstanie mi powiedzieć, skąd ten błąd?

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
macin
Majsterkowicz
Posty: 190
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: attiny2313, arduino ide, irremote

Post autor: macin » 26 lut 2016, 10:34

Witam.
Ten program nie zmieści się na attiny z powodu małej ilości pamięci. Było kiedyś na forum. Jest jeszcze wyjście odchudzania kodu.

Pozdrawiam.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 26 lut 2016, 10:41

Układy, które mają mniej pamięci niż atmega328, poza tym, że mają za mało pamięci na samą bibliotekę i tu się nic nie odchudzi, żeby weszło na 2kB, to nie są też z tą biblioteką kompatybilne, bo nie posiadają rejestrów, z których korzysta ta biblioteka. Stąd ta cała lista błędów.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1133
Rejestracja: 18 lis 2011, 02:18

Re: attiny2313, arduino ide, irremote

Post autor: Marhef » 26 lut 2016, 11:54

A czy dodatkowym problemem nie jest taka sama nazwa biblioteki w dwóch folderach? Komunikat "Znaleziono wiele bibliotek w "IRremote.h""
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 26 lut 2016, 16:10

No własnie. Przy kompilowaniu na arduino też na pewno jest ten błąd, ale kompilator sobie z tym "poradził", wybrał jedną z bibliotek.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 26 lut 2016, 21:16

czyli rozumiem Panowie, że proponujecie kupić np Atmege328 i ja zaprogramowac przez usbasp i bedzie dzialac? czy moze jakiś inny układ nieco tańszy?
jar800v
Młodszy majsterkowicz
Posty: 39
Rejestracja: 2 lut 2015, 11:09

Re: attiny2313, arduino ide, irremote

Post autor: jar800v » 26 lut 2016, 22:38

Może niekoniecznie atmegę328 bo kod irremote zmieści się też na atmedze8 ale można kupić atmegę328 i mieć więcej miejsca na kod i jego ewentualne przeróbki/dodatki.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 26 lut 2016, 22:42

jar800v coś się zmieniło? Bo z tego co ja wiem, to kod nie zmieściłby się na atmegę8 i do tego jest ten problem, że biblioteka korzysta z rejestrów, których atmega8 nie ma.
jar800v
Młodszy majsterkowicz
Posty: 39
Rejestracja: 2 lut 2015, 11:09

Re: attiny2313, arduino ide, irremote

Post autor: jar800v » 27 lut 2016, 10:55

Ja robiłem odbiornik ir na atmega8 (ten co Łukasz przedstawił) z wykorzystaniem tej biblioteki i wszystko się zmieściło i skompilowało (problemów z rejestrami nie było), ale zajęło całą pamięć tego uC.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 27 lut 2016, 13:17

Miałem tą bibliotekę i po skompilowaniu na arduino uno takiego prostego programu zajmował prawie 11kB.

Kod: Zaznacz cały

#include <IRremote.h>
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
 
void setup() {
   Serial.begin(9600);
   irrecv.enableIRIn();
}
 
void loop() {
   if (irrecv.decode(&results)) {
      Serial.print("0x");
      Serial.println(results.value, HEX);
      delay(250);
      irrecv.resume();
      }
}
Ściągnąłem aktualną wersję biblioteki stąd https://github.com/z3t0/Arduino-IRremote
i program po skompilowaniu zajmuje już mniej, ponad 7kB, więc powinien zmieścić się na atmegę8, ale przy kompilowaniu tego programu przy ustawionej atmedze8 mam taki błąd, i w arduino ide 1.0.5, i 1.6.3

Kod: Zaznacz cały

e:/___arduino/arduino-1.0.5/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: sketch_feb27a.cpp.elf section .text will not fit in region text
e:/___arduino/arduino-1.0.5/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 258 bytes

Ale tutaj na tej stronie https://www.pjrc.com/teensy/td_libs_IRremote.html
na górze jest link do jakiejś przerobionej wersji tej biblioteki i na arduino ide 1.6.3 program się skompilował dla atmegi8, ale na wersji 1.0.5 mam dalej taki błąd jak wcześniej.
Czyli jednak można, ale ten program zajmuje już 99% pamięci atmegi8.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 16:46

Panowie czyli reasumując, jeśli kupie atmege 328 to spokojnie wszystko zadziała? bede potrzebować do tego jeszcze jakeis elementy których attiny nie wymagało a A328 już będzie potrzebować, czy spokojnie moge kupić i wgrywać?
Awatar użytkownika
macin
Majsterkowicz
Posty: 190
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: attiny2313, arduino ide, irremote

Post autor: macin » 28 lut 2016, 16:52

piotrek_realfan pisze:Panowie czyli reasumując, jeśli kupie atmege 328 to spokojnie wszystko zadziała? bede potrzebować do tego jeszcze jakeis elementy których attiny nie wymagało a A328 już będzie potrzebować, czy spokojnie moge kupić i wgrywać?
Witam.
Zastanowiłbym się na twoim miejscu nad arduino pro mini ewentualnie pro nano. Masz wtedy gotową płytkę małych rozmiarów, nic nie musisz kombinować z kwarcami podłączaniem pinów do zasilania itp. To tylko moja mała sugestia, ceną dużo się nie różnią między atmegą 328.

Pozdrawiam.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 18:30

czyli co? bez kwarców sama atmega328 nie będzie mi nic użyteczna? nie moge dać samą atmege na płytke drukowaną, i odpowiednio ją podłaczyć tak samo jak arduino podłączam?

zakładam, że jeśli wszystko zrobie zgodnie z tym opisem to będzie chodziło?
blog.dulare . com / rozmnazanie-arduino-czyli-jak-zjesc-ciastko-i-miec-ciastko
Ostatnio zmieniony 28 lut 2016, 18:53 przez piotrek_realfan, łącznie zmieniany 1 raz.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 18:55

rozumiem, dzięki za wskazówki, tak więc rozumiem, że jeśli nie dam, żadnego kwarca to też powinno chodzic tylko ze 8MHz co sądze, że dla mojego układu powinno byc ok, rozumiem też, że jeżeli dam zasilacz 5V to stabilizatora nie potrzebuje i wystarczy mi sama gola atmega bo jednak przy niej chcę zostać??
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 28 lut 2016, 19:24

Tak w skrócie to potrzebujesz rezystor 10k podciągający reset do vcc, 2 kondensatory ceramiczne 100 nF i 2 elektrolityczne 22uF. I taką parę 100 nF i 22 uF łączy się z lewej strony i z prawej strony przy pinach zasilania.

A najłatwiejszy sposób ustawienia fusebitów, to wgranie bootloadera, wtedy są te fusebity też ustawiane według wybranej płytki. Tutaj masz instrukcję jak przygotować arduino ide do programowania atmegi328 http://majsterkowo.pl/forum/programowan ... -t280.html
I jak będziesz miał tak przygotowane arduino ide, to ustawisz sobie płytkę na "ATmega328P @ 8 MHz" i po wgraniu bootloadera będzie działać na wewnętrznym kwarcu. Arduino ide nie może być w wersji nowszej niż 1.0.6.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 19:55

ok, dzięki wszystkim za pomoc, pozostaje zamówić dziś atmege328 podłączyć tak jak piszeciei spróbować wgrać ten programik o którym pisałem w pierwszym poście (na samym arduino działa dobrze)

wnioskuje, że jeśli dam kwarc to będę mógł wyciągnąć Atmege z arduino i będzie działała samodzielnie?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 28 lut 2016, 20:01

Co masz na myśli, że jak dasz kwarc to będzie działać samodzielnie?
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 21:55

rozumiem, ze wtedy już nic nie stanie mi na przeszkodzie aby wlutowac atmege w płytke drukowaną i zaprogramować?(albo odwrotnie) :)
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: attiny2313, arduino ide, irremote

Post autor: stiven » 28 lut 2016, 22:36

Aha, masz na myśli tą atmegę, którą już masz w arduino, to tak.

Jak kupisz "świeżą" atmegę, to też trzeba wgrać bootloader żeby były odpowiednie ustawienia fusebitów pod zewnętrzny kwarc 16 MHz. Ale do tej nowej atmegi nie wgrasz bootloadera na płytce arduino. Byś musiał mieć programator, albo arduino (z atmegą z prawidłowymi ustawieniami) użyć jako programatora. Można też kupić atmegę328 już z wgranym bootloaderem.
https://www.arduino.cc/en/Tutorial/ArduinoISP
http://majsterkowo.pl/progamowanie-mikr ... ttiny2313/

A nie wgrasz bootloadera na płytce arduino dlatego, że arduino nie ma programatora ISP, a do programowania korzysta właśnie z bootloadera wgranego w atmegę i przejściówki usb/serial. Jak atmega nie ma bootloadera, to nie wgra się nic.

Kup sobie podstawkę, żebyś nie musiał wlutowywać atmegi.
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 28 lut 2016, 23:34

dzieki, zamowilem dzis własnie atmege i podstawke, posiadam też programator usbasp i nim mam zmiar programować atmege wiec myśle ze dam, rade. dotychczas udało mi się jedynie tym programatorem wgrac bootloader do attiny2313 i wgrac tam prosty układ, ale jak widze cos mocniejszego nie zmieści sie tam juz, więc sądze ze z atmega tez sobie poradze, chodziło mi tylko o kilka szczegółów o które tutaj pytalem, jak dojdzie atmega to dam znać co mi sie udało osiągnąć :)
piotrek_realfan
Młodszy majsterkowicz
Posty: 12
Rejestracja: 25 lut 2016, 23:52

Re: attiny2313, arduino ide, irremote

Post autor: piotrek_realfan » 2 mar 2016, 23:01

Witam, niestety ale przy próbie wgrania bootloadera wywala error:
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
co zrobić z tym jeśli mogę zapytac?
ODPOWIEDZ

Strony partnerskie: