logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wybór środowiska dla AVR: Bascom vs Atmel Studio - co lepsze?

KrzyMr 05 Lip 2018 22:29 2544 27
  • #1 17314450
    KrzyMr
    Poziom 6  
    Witam mam pytanie odnośnie środowiska programistycznego. Od jakiegoś czasu zacząłem programować avr, na jakie środowisko przerzucić sięz arduino, myślałem o bascomie albo nad atmel studio, które jest prostsze, na co jest więcej i lepszych książek, poradników, ogólnie co polecacie. A może inne, czekam na propozycje i uzasadnienia. Posiadam atmega32, 8, 328.
  • #2 17314472
    Konto nie istnieje
    Konto nie istnieje  
  • #3 17314493
    tmf
    VIP Zasłużony dla elektroda
    @KrzyMr Jeśli bawiłeś się Arduino to w jakimś stopniu znasz C++. Więc możesz przejść na C++ bez frameworku Arduino, albo po prostu programować w C, które do C++ w jakimś stopniu jest podobne. To jakiego IDE użyjesz to inna sprawa, chociaż dla AVR naturalnym wyborem jest Atmel Studio. Ja bym zaczął od zainstalowania Atmel Studio, ściągnięcia paru przykładów i dalej pewnie pójdzie w miarę z górki. Bascom jak pisze przedmówca to istotnie ślepa uliczka i już chyba zostanie przy tym Arduino byłoby lepszym pomysłem :)
  • #4 17314546
    Konto nie istnieje
    Konto nie istnieje  
  • #5 17316005
    KrzyMr
    Poziom 6  
    A ma może ktoś z was jakiś prosty przykład do obsługi wyświetlacza LCD i jak dodawać biblioteki bo szukam po internetach ale niczego nie rozumiem.
  • #6 17316018
    Konto nie istnieje
    Konto nie istnieje  
  • #7 17316096
    Konto nie istnieje
    Konto nie istnieje  
  • #8 17316714
    JacekCz
    Poziom 42  
    KrzyMr napisał:
    Witam mam pytanie odnośnie środowiska programistycznego. Od jakiego zacząć programować avr, a właściwie na jakie się przerzucić z arduino myślałem o bascomie albo nad atmel studio, które jest prostrze, na co jest więcej i lepszych książek poradników ogólnie co polecacie. A może inne czeka na propozycje i uzasadnienia. Posiadam atmega32, 8, 328.


    KrzyMr napisał:
    A ma może ktoś z was jakiś prosty przykład do obsługi wyświetlacza LCD i jak dodawać biblioteki bo szukam po internetach ale niczego nie rozumiem.


    wybacz, ale twoje połączenie pytań to jakas sieczka.
    Chcesz DZIŚ podłączyć LCD (prawdopdobnie bez zrozumienia) czy myślisz o ścieżce rozwoju?

    Świat arduino uczy jednej z najgłupszych rzeczy w programowaniu : WKLEJAĆ

    Dodano po 31 [sekundy]:

    z3planety napisał:
    KrzyMr napisał:
    A ma może ktoś z was jakiś prosty przykład do obsługi wyświetlacza LCD i jak dodawać biblioteki bo szukam po internetach ale niczego nie rozumiem.
    Zacznij od nauki C lub C++ a nie "dodawania bibliotek" . Nauki bez uKontrolera. Na PC-ie.

    +1

    Dodano po 50 [sekundy]:

    tmf napisał:
    @KrzyMr Jeśli bawiłeś się Arduino to w jakimś stopniu znasz C++.


    W drugim pytaniu kolega napisał, że chyba nie

    Dodano po 4 [minuty]:

    KrzyMr napisał:
    Od jakiego zacząć programować avr,


    Zanim w tym tempie się czegoś nauczysz, AVR jakie znasz się skończy
  • #9 17316891
    KrzyMr
    Poziom 6  
    Znaczy w atmel studio trochę już robiłem wyświetlacz 7 segmentowy 4 cyfrowy i przyciski. Ale chciałem zrobić termometr.
  • #10 17316936
    Konto nie istnieje
    Konto nie istnieje  
  • #11 17318825
    KrzyMr
    Poziom 6  
    no to kod wygląda tak dzisiaj udało mi się okiełznywać przetwornik ADC sporo się nad nim męczyłem, teraz nie wiem jakie operacje matematycznych użyć aby pokazywał dobrą temperaturę.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #12 17318858
    Konto nie istnieje
    Konto nie istnieje  
  • #13 17320425
    KrzyMr
    Poziom 6  
    dlaczego nie chce mi skompilować tego wiersza?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    taki błąd pokazuje

    ../atmwga32tesety.c:83: error: expected ')' before string constant
    make: *** [atmwga32tesety.o] Błąd 1

    Dodano po 1 [godziny] 39 [minuty]:

    Dobra obecnie kod wygląda tak
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    ale wyświetla jakieś dziwne znaki co jest nie tak?
  • #14 17320731
    BlueDraco
    Specjalista - Mikrokontrolery
    Wszystko jest nie tak. Typy i atrybuty danych, algorytm. Nie zamieniasz wartości cyfr na obraz segmentów. Niepotrzebnie wołasz sprintf() kiedy nie masz nowych wyników. Wyświetlasz w pętli z amiast w przerwaniu timera. Przeprogramowujesz wejście na wejście (ono już jest wejściem). Ustawiasz stany wyjść po ustawieniu kierunku (błąd).
  • #15 17320758
    JacekCz
    Poziom 42  
    KrzyMr napisał:
    dlaczego nie chce mi skompilować tego wiersza?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    taki błąd pokazuje

    ../atmwga32tesety.c:83: error: expected ')' before string constant
    make: *** [atmwga32tesety.o] Błąd 1



    Ktoś tu twierdził, że nie tzreba znać C jako formalny standardowy język, by siadać na uP.

    Dodano po 47 [sekundy]:

    BlueDraco napisał:
    Wszystko jest nie tak. Typy i atrybuty danych, algorytm. Nie zamieniasz wartości cyfr na obraz segmentów. Niepotrzebnie wołasz sprintf() kiedy nie masz nowych wyników. Wyświetlasz w pętli z amiast w przerwaniu timera. Przeprogramowujesz wejście na wejście (ono już jest wejściem). Ustawiasz stany wyjść po ustawieniu kierunku (błąd).


    +1
  • #16 17322090
    KrzyMr
    Poziom 6  
    Dobra panowie, krótka piłka.
    Mam liczbę np. 5813 i che ja zapisać w tablicy w postaci szesnastkowe
    int wynik[4] = {0x6D, 0x7F, 0x06, 0x4F};
    jak to zrobić? Proszę o konkrety w postaci kodu albo przykładu (linku do strony) bo jak na razie nie dostałem żadnych konkretów tylko krytykę
    nie tego oczekiwałem zwłaszcza, że każdy z nas kiedyś zaczynał. :(
  • #17 17322136
    Konto nie istnieje
    Konto nie istnieje  
  • #18 17322368
    BlueDraco
    Specjalista - Mikrokontrolery
    Z tym sprintf to gruba przesada.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #19 17322480
    Konto nie istnieje
    Konto nie istnieje  
  • #20 17322502
    BlueDraco
    Specjalista - Mikrokontrolery
    Jak chce się wygasić zera nieznaczące, to wystarczy nieco zmodyfikować jedną linijkę :)
    display[i] = v % 10 || !i ? dec7seg[v % 10] : 0;
  • #21 17330505
    grizley
    Poziom 10  
    nowyARM napisał:

    [ciach]
    Przyznam, że AVR bez możliwości debugowania (np Mega8, Tiny13) omijałem szerokim łukiem,


    nie przesadzaj debuger jest zbędny do tych mikrokont. tym bardziej do attiny13 , co Ty tam chcesz debugować ? parę rejestrów na krzyż a Ty od od razu z armatą na nie od tego jest datasheet
  • #22 17330577
    Konto nie istnieje
    Konto nie istnieje  
  • #23 17333538
    trol.six
    Poziom 31  
    KrzyMr napisał:
    Dobra panowie, krótka piłka.
    Mam liczbę np. 5813 i che ja zapisać w tablicy w postaci szesnastkowe

    Podstawy języka C i programowanie w tym języku to nie jest krótka piłka. Jaki typ liczby? W jakiej tablicy? Czy to ma być zoptymalizowane? itp itd.

    Można wziąść kalkulator co zamienia dec-hex np online: https://www.binaryhexconverter.com/decimal-to-hex-converter i zapisać w tablicy

    char hexliczba5813[] = "16B5";

    lub
    const char hexliczba5813[] = "16B5";


    Zalety: mała wielkość kodu wynikowego, możliwość umieszczenia w stałej części kodu programu.
    Wady: konieczność każdorazowej konwersji za pomocą innych narzędzi

    Tak że, jeśli nie chcesz zamotać się to książka, kurs o podstawach C, i praktyka w pisaniu.

    nowyARM napisał:
    Im mniej wyprowadzeń ma uC tym bardziej potrzebny jest debuger bo nie ma jak sobie wyświetlać informacji diagnostycznych

    A ten debuger to bezprzewodowy jest? Poza tym nie wyobrażam sobie szukanie błędu zapomocą debugera np. w sortowaniu stogowym, albo jakimkolwiek algorytmie.
    .
  • #24 17333575
    Konto nie istnieje
    Konto nie istnieje  
  • #25 17333594
    trol.six
    Poziom 31  
    nowyARM napisał:
    Skoro taka wypowiedź to widac kolega kompletnie nie wie do czego używa się debugera

    Zadałem koledze pytanie, czy ten debuger jest bezprzewodowy? I nie dostałem zadowalającej odpowiedzi. Odpowiem sobie zatem sam, zużywa piny mikrokontrolera bo trzeba przez ten jtag się podłączyć. Więc używanie go to czysta strata w ilościach wyprowadzeń, szczególnie w uC które posiadają mało tych pinów.
  • #26 17333647
    Konto nie istnieje
    Konto nie istnieje  
  • #27 17340949
    tronics
    Poziom 38  
    Cytat:
    Zwłaszcza DebugWire w AtTiny

    PDI z Xmega zajmuje 2, z czego jedną dedykowaną i reset, a UPDI z nowych tiny (81x, 12xx) i mega (32xx, 48xx) tylko 1 dedykowaną.
    Cytat:
    Chciałbym zobaczyć pracę i jej wydajność kolegi piszącego soft bez debugera. Każdy normalny szef zwolni takiego pracownika bo jest mało wydajny.

    Niby czemu? Czy taki, który umie posługiwać się debuggerem, ale nie umie dobrze pisać będzie szybszy od takiego co "jest sprytniejszy od kompilatora i wyłapuje lepiej niż debugger" ? ;) Oczywiście tutaj taki żarcik, ale nie bez refleksji. Nie każdy projekt to fatfs, lwip i rtos :)
  • #28 17340978
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA