Strona 44 z 45

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-12, 14:53
autor: laurentp
woxy pisze:
2020-05-12, 14:44
...
Ja mam starą wersję boot loadera....
Masz programator (USBasp choćby, bo tani)? Żeby wgrać nową wersję?
Bo po napisach to jest świeża wersja i "u mnie działa".

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-12, 19:27
autor: woxy
Hej,
Mam jakiś na ch340a na usb, pokazuje się jako com.
Ale nijak nie mogłem go zmusić aby wgrać bootloader.
Udało się rx tx jako programator arduino, ale bootloadera nie wiem jak wgrać poza środowiskiem Arduino.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-12, 19:44
autor: laurentp
woxy pisze:
2020-05-12, 19:27
Hej,
Mam jakiś na ch340a na usb, pokazuje się jako com.
Ale nijak nie mogłem go zmusić aby wgrać bootloader.
Udało się rx tx jako programator arduino, ale bootloadera nie wiem jak wgrać poza środowiskiem Arduino.
Możesz w środowisku, opcja "burn bootloader" ale jak wychodzi musiałbyś mieć programator, najtańszy (działający, mam taki) to chyba właśnie USBasp, był po ~20zł + przesyłka na Alle, teraz sprawdzałem, 10-15zł. + przejściówka na 6 pin z 10 (~5zł), ale może są jak kiedyś i takie zestawy od razu z nią (1 koszt wysyłki).

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-14, 00:55
autor: woxy
Cześć,
ogarnąłem programowanie via usb- ttl programator,
i o ile program wgrywa sie prawidłowo, to bootloadera nijak nie idzie wgrac.
Wali błędami przy weryfikacji.
Tak samo z Arduino jak z AVRDudess.

Kod: Zaznacz cały

>>>: avrdude 
>>>: avrdude -u -c avrisp -P COM6 -b 57600 -p m8 
Wykryto 1e950f = ATmega328P
Odczytuje fusy...
>>>: avrdude -u -c avrisp -p m328p -P COM6 -b 57600 -U hfuse:r:-:h -U lfuse:r:-:h -U efuse:r:-:h 
SUKCES: Odczytałem fusy High
SUKCES: Odczytałem fusy Low
SUKCES: Odczytałem fusy Extended
Odczytuje lock bity...
>>>: avrdude -u -c avrisp -p m328p -P COM6 -b 57600 -U lock:r:-:h 
SUKCES: Odczytałem lock bity
optiboot_atmega328.hex: 502 / 32 768 Bytes (1,53%)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
>>>: avrdude -u -c avrisp -p m328p -P COM6 -b 57600 -F -U flash:w:"C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex":a 

avrdude.exe: AVR device initialized and ready to accept instructions

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

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex"
avrdude.exe: input file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex auto detected as Intel Hex
avrdude.exe: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 32768 bytes of flash written
avrdude.exe: verifying flash memory against C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex:
avrdude.exe: load data flash data from input file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex:
avrdude.exe: input file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex auto detected as Intel Hex
avrdude.exe: input file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex contains 32768 bytes
avrdude.exe: reading on-chip flash data:

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

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x7e00
             0x0e != 0x11
avrdude.exe: verification error; content mismatch

avrdude.exe done.  Thank you.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-14, 08:11
autor: laurentp
woxy pisze:
2020-05-14, 00:55
...ogarnąłem programowanie via usb- ttl programator,
i o ile program wgrywa sie prawidłowo, to bootloadera nijak nie idzie wgrac.
Używałem USBasp, on jest niejako "zewnętrzny" w stosunku do procka. A czy bootloader jest W OGÓLE w stanie wgrać nową SWOJĄ wersję to sprawdź w datasheecie, ale coś mi się kojarzy, że nie. Musiałyby być 2 instancje, jedna "pracuje", druga "się wgrywa" a miejsce przewidziane jest na 1. (na ESP jest miejsce na 2 programy przy flashu > 1M).

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-14, 10:16
autor: woxy
Tak, przyjrzałem się temu usbasp - on ma atmegę w sobie więc to wychodzi tak, jak posiadanie drugiego arduino i programowanie jednego drugim.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-14, 10:42
autor: laurentp
woxy pisze:
2020-05-14, 10:16
Tak, przyjrzałem się temu usbasp - on ma atmegę w sobie więc to wychodzi tak, jak posiadanie drugiego arduino i programowanie jednego drugim.
W sumie możesz podłączyć 2gie arduino, są takie patenty w sieci, jak już masz. Ja nie miałem to po prostu kupiłem programator. I płytkę adapterów z podstawką Textoola, chyba z 50zł, ale dobrej jakości.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-15, 23:28
autor: laurentp
woxy pisze:
2020-05-14, 10:16
...
Jakiś postęp?

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-21, 23:06
autor: woxy
Cześć,
dopiero dzisiaj po wielu próbach zmusiłem programator CH341a przez MISO MOSI aby wgrać bootloader OptiBoot.
Wgrał się ok - ale niestety arduino nie wgrywało nic.
Powrót do starego - wszystko działa.
Nowy ponownie - gucio.
Stary ponownie - gucio.
Nowy ponownie + exit z programu - działa :)
Progamuje Blink - błyska.
Wgrywam skompilowany .hex Twojego programu - gucio - dioda miga dwukrotnie co chwilę.
Znowu stary bootloader - znowu nie wgrywa niczego.
Ponownie nowy - wgrywam blink -ok - Twój program działa ale zamiast napisów wywala kwardaciki i potem temperaturę - wywala też błąd weryfikacji na adresie 0x0000.
Wgrałem po raz ostatni stary bootloader - działa, zaskoczył blink., Twój program przeszedł weryfikację.
Na chwilę obecną wyświetla od strzała wszystko na ekranie.
Nie mam pojęcia w czym był problem.

Teraz pora na I2C.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 17:31
autor: woxy
O ile defines poszło w miarę gładko, tak biblioteka arduinowa LiquidCrystal nie kompiluje się. Znalazłem kilka przykładów wykorzystania biblioteki od Pfleurry jak i2cmaster do uruchomienia lcd na pcf8574 bo taki mam w płytce i2c , ale na chwilę obecną nie udało mi się uruchomić lcd. Trzeba mądrzejszej głowy do tego, lub więcej mojego czasu aby to ogarnąć.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 18:01
autor: laurentp
Kompilujesz przez "make" z linii komend czy ze środowiska Arduino?
Jeśli przez make to zrób coś w podobie "make 2> /tmp/xxx.txt" i załącz ten plik (wyjście błędów) na forum, zzipowany bo pewnie forum innego formatu nie przyjmie.
Na pliku (txt) możesz jeszcze zrobić "grep err /tmp/xxx.txt | more", zobaczyć jaki będzie pierwszy błąd. Tej biblioteki używam, ale dla ESP, nie AVR.

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 20:31
autor: woxy
Załączam moje zmodowane archiwum, w nim też err.txt
Głownie czepia się:

Kod: Zaznacz cały

In file included from Print.h:38,
                 from LiquidCrystal_I2C.h:6,
                 from main.c:162:
Printable.h:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Print'
Printable.h:33: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Printable'
In file included from LiquidCrystal_I2C.h:6,
                 from main.c:162:
Print.h:48: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Print'
In file included from Wire.h:26,
                 from LiquidCrystal_I2C.h:7,
                 from main.c:162:
Stream.h:49: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Stream'
In file included from LiquidCrystal_I2C.h:7,
                 from main.c:162:
Wire.h:33: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TwoWire'
Wire.h:82: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Wire'
In file included from main.c:162:
LiquidCrystal_I2C.h:55: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'LiquidCrystal_I2C'
In file included from main.c:207:

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 21:01
autor: laurentp
Postaram się spojrzeć jutro na to archiwum.
Co do samych błędów, znasz forum AVRFreaks? Sporo ludzi z wiedzą, mi nie raz pomogli.
Może tam dać post z fragmentami "działającego oryginału" i "niekompilowalnej kopii"?

[EDIT]
To nie powinny być pliki *.cpp a nie *.c? Arduino (coś mi świta) to C++ a nie C.?

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 21:18
autor: woxy
Tak pliki .cpp,
były na starcie, a że nie działało , spróbowałem zmienić rozszerzenia na .c,
ale nic to nie dało.
Avr freaks nie znam, zaglądnę :)

Re: Termometr 4 punktowy *z podłączeniem do PC*

: 2020-05-24, 21:22
autor: laurentp
woxy pisze:
2020-05-24, 21:18
Tak pliki .cpp,
były na starcie, a że nie działało , spróbowałem zmienić rozszerzenia na .c,
ale nic to nie dało.
Avr freaks nie znam, zaglądnę :)
Pewnie trzeba zmienić Makefile, bo teraz zawiera w sumie tylko "instrukcje" jak z *.c zrobić *.o, a z *.cpp nie wie make / kompilator co zrobić.
W sumie odwrotny manewr stosuję pod ESP, tj w katalogu źródeł są linki o nazwach *.cpp prowadzące do plików *.c . I jakoś się buduje ;p.