Programatyor USB dla Bascoma, który wybrać?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 17 wrz 2012, 10:44

M@ciej pisze:Tymczasem puki co pokutuje u mnie Bascom i do niego chciałbym dobrać programator USB.
... podpowiedź była:
dondu pisze:Poza tym istnieje AVRDude + różnego rodzaju nakładki ułatwiające jego obsługę, co uniezależnia programowanie od BASCOM.
+ np. tani USBasp.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 17 wrz 2012, 15:56

Z "Dudkiem" też miałem kontakt. Swego czasu Tasza mi go zaproponowała (ciekawe, co tam u Niej, dawno jej tu nie widziałem). Jednak wtedy albo nie było, albo nie znalazłem (chyba to drugie) do niego jakiegoś ludzkiego interfejsu. Jeśli miałbym programować (wgrywać program do procka), to użył bym Pony Proga. Ale właśnie w Bascomie też to jest wygodne, że interpreter, kompiler i programator są zawarte w jednej aplikacji.
Tak więc AVR Asp wykonam sobie, bo mam już do niego dokumentację. Z przejściem na C to chyba ma się nijak, bo cześć sprzętowa pozostaje taka sama.

Awatar użytkownika
matrix
Użytkownik
Posty: 1793
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 wrz 2012, 17:35

Sory że jeszcze rzucę, ale mnie na przykład przed stosowaniem języka C powstrzymują też problemy z którymi sam nie potrafię sobie poradzić. Juz na samym wstępie kompilacja prostego migania diodą

Kod: Zaznacz cały

/* "led.c" - programik do testowania środowiska WinAVR */
/* układ ATmega 1MHz */
/* PB0,PB1 - diody LED; PD0 - przycisk */

#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>               

int main(void)
{
    DDRB  |= _BV(0)|_BV(1);
    PORTB |=  _BV(0);
    PORTB &= ~_BV(1);
    DDRD  &= ~_BV(0);
    PORTD |=  _BV(0);

    while (1) 
    {
        PORTB ^=_BV(0);
        PORTB ^=_BV(1);
        if(PIND & _BV(0)) _delay_ms(1000); else _delay_ms(200);
    }
}
zamiast oddać code 0 to wywala:

Kod: Zaznacz cały

> Process Exit Code: 2
> Time Taken: 00:00
No i jak tu stosować C skoro nawet nie można prostego programiku skompilować? W Bascom takich kłopotów nie ma.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 17 wrz 2012, 19:20

Nie mam pojęcia o co Ci chodzi.

Komunikaty kompilacji powyższego kodu:

Kod: Zaznacz cały

Build started 17.9.2012 at 20:19:00
avr-gcc  -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99                                         -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT dd.o -MF dep/dd.o.d  -c  ../dd.c
avr-gcc -mmcu=atmega8 -Wl,-Map=PROBY.map dd.o     -o PROBY.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  PROBY.elf PROBY.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex PROBY.elf PROBY.eep || exit 0
avr-objdump -h -S PROBY.elf > PROBY.lss

AVR Memory Usage
----------------
Device: atmega8

Program:     126 bytes (1.5% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...
Czyli zero błędów - kod skompilowany prawidłowo.

Jak już wielokrotnie wspominałem, wszystko leży w głowie. Jeżeli się ktoś uporze, że chce pisać dwoma palcami to nigdy nie nauczy się pisać dziesięcioma.

I dlatego u Ciebie także pokutuje to samo co u Macieja:
M@ciej pisze:Tymczasem puki co pokutuje u mnie Bascom ...
:)
Ostatnio zmieniony 17 wrz 2012, 19:33 przez dondu, łącznie zmieniany 1 raz.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 17 wrz 2012, 19:28

No dobra, teraz ja zapytam w takim razie.

Jest kilka kompilatorów C. Miałem taki przykład: Znalazłem źródło w C kompletnego programu, które chciałem skompilować. Poprosiłem kolegę, który, jak się chwalił programował w C. Zastosowanie jednego środowiska zaowocowało samymi błędami w kompilacji, drugiego tak samo, dopiero trzecim środowisku (nie pamiętam teraz które to były dokładnie) udało się skompilować po kilku poprawkach, ale program i tak nie działał zgodnie z oczekiwaniami.

Teraz pytanie: jeśli zacząć programować w C, to jakie środowisko wybrać? AVR GCC, czy może AVR Studio, czy inne? Jeśli zacznę w jednym, to czy będzie łatwo "przejść" do innego środowiska programistycznego C?

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 17 wrz 2012, 19:37

To dwie różne sprawy. AVR GCC to kompilator GCC z bibliotekami do AVR. AVR Studio to środowisko do pisania programów, który może korzystać z AVR GCC.

Jest nowsza wersja AVR Studio która nazywa się Atmel Studio. Zawiera w sobie wszystko co niezbędne łącznie z kompilatorem GCC. Ma jedną wadę - programator USBasp nie bardzo chce z nią działać, ale jak już pisałem wcześniej nie ma takiej potrzeby - wystarczy AVR Dude + jakaś nakładka.

Można więc tak: http://mikrokontrolery.blogspot.com/201 ... yczne.html

lub tak: http://mikrokontrolery.blogspot.com/201 ... resci.html

Awatar użytkownika
matrix
Użytkownik
Posty: 1793
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 wrz 2012, 20:20

dondu pisze:Jak już wielokrotnie wspominałem, wszystko leży w głowie. Jeżeli się ktoś uporze, że chce pisać dwoma palcami to nigdy nie nauczy się pisać dziesięcioma.

I dlatego u Ciebie także pokutuje to samo co u Macieja:
Wierz mi że ja nie upieram się na siłę przy bascomie tylko jak napotykam powyższy błąd to się zatrzymuję. Jeżeli jadę rowerem i próbuję przesiąść się na samochód by było szybciej i wygodniej, ale ten nie działa to żeby dojechać do celu wsiadam na powrót na rower. Czyż nie?
Cały kod błędu to:

Kod: Zaznacz cały

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make.exe: *** No rule to make target `proba.elf', needed by `elf'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:02

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 17 wrz 2012, 22:05

matrix pisze:Wierz mi że ja nie upieram się na siłę przy bascomie tylko jak napotykam powyższy błąd to się zatrzymuję.
Ja Ci wierzę, ale problem leży w podejściu do sprawy, ponieważ przez taką wypowiedź:
matrix pisze:No i jak tu stosować C skoro nawet nie można prostego programiku skompilować? W Bascom takich kłopotów nie ma.
widać Twoje negatywne podejście do C.

A powinno być pozytywne:
matrix mógł podejść tak pisze:OK, Zabrałem się za C. Nie spocznę dopóki się nie nauczę.
Zrobiłem więc tak ....

i otrzymałem ....

Hmmm, co robię źle?
Zainstaluj AVR Studio (w wersji 4) lub Atmel Studio, o których pisałem wyżej.

Awatar użytkownika
matrix
Użytkownik
Posty: 1793
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 wrz 2012, 22:16

Przeinstalowałem WinAVR. Błędów nie wywala. Będę się starał znowu ogarnąć.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 17 wrz 2012, 22:20

Posłuchaj mojej rady i nie męcz się z WIN AVR. Zostaw go zainstalowany, ale zainstaluj AVR Studio 4: http://www.atmel.com/Images/AvrStudio4Setup.exe

Awatar użytkownika
Ertew
Użytkownik
Posty: 1418
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 20 wrz 2012, 20:02

UsbAsp ma tą zaletę że można go zrobić samemu (trzeba mieć inny programator lub zaprogramowanego procka) i w takiej wersji daje rewelacyjny stosunek możliwości do ceny. Niestety UsbAsp to tylko ISP, nie obsługuje nowych interfejsów wdrażanych przez Atmela w najnowszych procesorach.

Połączenia Bascom - UsbAsp nie polecam, to naprawdę źle działa.

UsbAsp śmiga jeśli jest obsługiwany przez avrdude (polecam tryb terminalowy), niestety dodatkowo trzeba zaopatrzyć się w kalkulator fusów i trochę cierpliwości.
Nakładka graficzna avrdudegiu nie wykorzystuje wszystkich możliwości usbasp i ma kilka niedociągnięć, nakładka burn-o-mat i podobne mają jeszcze więcej braków.

Równie dobrze usbasp działa z WinAvr (oraz podobnymi narzędziami wywołującymi avrdude z odpowiednimi parametrami).


A co do Bascoma, świetne środowisko do migania ledem i sprawdzenia standardowego LCD tekstowego. Działający wsad to kilka minut, więcej zajmuje konfiguracja makefile w C. Do tego Bascom ma aktualną listę procesorów i dobrze sprawdza się jako kalkulator fusów :wink:
Po uruchomieniu procesora wracam na C i można zacząć zabawę wiedząc że procesor żyje.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 20 wrz 2012, 20:16

Ertew pisze:Działający wsad to kilka minut, więcej zajmuje konfiguracja makefile w C.
Kolega nie pracował widocznie w środowisku AVR Studio lub nowym Atmel Studio, gdzie makefile tworzony jest automatycznie i nawet nie trzeba o tym wiedzieć. Więc program jaki podajesz robimy tak samo krótko, a może nawet krócej :)

Dlatego trzeba pracować na nowych oryginalnych narzędziach, a nie WinAVR sprzed wielu lat.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 12 lis 2012, 19:01

W końcu mój wybór padł na AVR OROG MKII, lecz niestety nie mogę pożenić go z Bascomem. Zainstalowałem sterowniki Jungo i próbowałem różnych opcji w zakładce "Programmer", gdzie była nazwa "MKII". Plik STK500.exe też mu wskazałem, ale nijak nie widzi procka. Albo pisze, że po prostu nie widzi, albo się wiesza. Mam Win7 i Bascom 1.11.9.8. Czytałem na innych forach,jak inni to robili,ale opisywali tak skrótowo, że śledząc to,co napisali doszedłem do niczego.

Czy któryś z Kolegów mógłby mi jasno opisać, jakie poczynić kroki, by to zadziałało z Bascom?

ODPOWIEDZ