Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega8 - Programowanie atmegi w Visual Studio

mystix 24 Sie 2016 11:48 1053 15
  • #1 24 Sie 2016 11:48
    mystix
    Poziom 4  

    Witam.
    Bardzo chcę się nauczyć programować mikrokontrolery w języku C jednak środowisko programistyczne wciąż rzuca mi pod nogi kłody których taki laik nijak nie jest w stanie obejść.
    Otóż uczę się języka w środowisku Visual Studio Microsoftu i nie mam z nim żadnych problemów dopóki tworzę sobie zwykłe programy w konsoli Win32 i nie dochodzi do próby skompilowania projektu do rozszerzenia .hex, którego mógłbym użyć do przesłania informacji do atmegi8 za pomocą programatora USBasp.
    Visual C++ nie wykrywa czegoś takiego jak biblioteka avr/io.h, bądź unit/delay.h, ale jest w tym środowisku możliwość tworzenia projektu Mfile, więc wnioskuję, że można jakoś skompilować w nim projekt, a następnie np. AVR burnerem wysłać do mojego µC tylko nie mam pojęcia jak to zrobić, a na forach wszyscy skupiają się na eclipse i WinAVR, których nie udało mi się ogarnąć (ale chyba już wiem czemu i spróbuję ponownie jednak bardzo podoba mi się środowisko microsoftu więc chciałbym przy nim pozostać).
    Bardzo proszę o jakieś wskazówki, może miał ktoś styczność z takim problemem, bądź jest zwyczajnie trywialny dla wprawionego programisty.

    Ps. Widziałem guidy typu używania Mfile'a stworzonego w WinAVR i umiem nawet je robić, ale i tak nie radzę sobie ze zrealizowaniem instrukcji i w efekcie nie wychodzi.

    Pozdrawiam i z góry dziękuję za wszelką pomoc.

    0 15
  • Pomocny post
    #2 24 Sie 2016 11:52
    excray
    Poziom 39  

    Niestety ale to co chcesz uzyskać jest niemożliwe. VB nigdy ne stworzy hexa który po wgraniu na AVRa mógłby działać. To tak samo jakby oczekiwać, że jak chińczyk napisze to co mówi, to zrozumiesz to bez problemu, bo przecież i Ty i on umiecie czytać. Proponuję jednak zainstalować sobie Atmel Studio i poćwiczyć C. Albo BASCOM - będzie najbardziej zbliżony do VB. Ale to ślepa droga.

    0
  • #3 24 Sie 2016 11:59
    mystix
    Poziom 4  

    No właśnie uczę się C na Visualu i bardzo mi się spodobał, wygląda na to, że muszę jeszcze raz spróbować ww. środowisk, lub tego Atmel Studio. Pytanie więc czy ten atmel studio obsłuży też płytki arduino które chcę w przyszłości użyć?
    Słabo jestem zorientowany w komunikacji PC z µC więc moje pytania mogą być dziwne.

    0
  • Pomocny post
    #5 24 Sie 2016 12:04
    excray
    Poziom 39  

    Co rozumiesz przez "obsłuży"? Program napisany w AS wgrany na procesora atmela zawsze będzie działać, niezależnie czy ten procesor jest wlutowany w płytkę arduino czy też jest umieszczony na stykówce.

    0
  • #6 24 Sie 2016 12:07
    mystix
    Poziom 4  

    No i wyjaśniłeś, a jeszcze coś co mnie intryguje.
    Jak fizycznie wygląda proces wgrywania programu na µC? Najpierw kompiluję kod, włączam dajmy na to tego burnera - AVR i dopiero wtedy podłączam USBasp do USB? Czy mogę to zrobić kiedykolwiek i nie będzie to miało negatywnych konsekwencji dla µC?

    0
  • #7 24 Sie 2016 12:14
    excray
    Poziom 39  

    Jest wiele sposobów. Możesz wgrać przez bootloader - o ile wcześniej go w jakiś sposób wgrałeś do procesora. Możesz użyć programatora szeregowego typu USBAsp, MKII czy ICE. Albo najdroższa opcja czyli programator HV. Generalnie poza arduino używa się programatorów z drugiej kategorii. podpinasz pod odpowiednie piny, wczytujesz do programu plik hex (bądź programujesz bezpośrednio z AS), wgrywasz i gotowe.

    0
  • #8 24 Sie 2016 12:16
    mystix
    Poziom 4  

    Tak tak, mi tylko chodzi o kolejność żeby nic nie spalić/zepsuć przy korzystaniu z USBAsp bo taki właśnie mam.

    0
  • #9 24 Sie 2016 12:21
    excray
    Poziom 39  

    Nigdy nie spaliłem procesora a robiłem kosmiczne kombinacje. Jeśli masz kanda to po prostu wpinasz wtyczkę. Jak kabelki to najpierw masa i zasilanie później reszta. Uważaj tylko na jedno: przy programowaniu używane są 3 linie miso, mosi i sck. Warto zadbać aby na tych liniach poza programatorem nic nie było, a jak to jest niemożliwe, to aby urządzenie nie zakłóciło transmisji w czasie programowania. Inaczej możemy mieć problemy z fusebitami. Po zaprogramowaniu nie musisz wypinać przewodów od programatora.

    0
  • #10 24 Sie 2016 12:25
    mystix
    Poziom 4  

    To chyba wszystko co chciałem wiedzieć, najważniejsze, że VC nie nadaje się do realizowania moich celów. Szkoda bo uczę się na książce Sokół R. - "Microsoft Visual Studio 2012. Programowanie w C i C++" i tak było mi wygodnie. W tej sytuacji muszę znaleźć inną literaturę, ma ktoś jakieś pomysły?

    0
  • #11 24 Sie 2016 12:27
    excray
    Poziom 39  

    Mirosław Kardas, Tomasz Francuz. Na forum jest wątek o książkach do nauki programowania w C. Poza tym są dobre kursy w necie.

    0
  • #13 24 Sie 2016 12:29
    mystix
    Poziom 4  

    Dziękuję za wszelką pomoc, oszczędziliście mi straty czasu z VS.

    0
  • Pomocny post
    #14 24 Sie 2016 12:39
    tmf
    Moderator Mikrokontrolery Projektowanie

    mystix napisał:
    To chyba wszystko co chciałem wiedzieć, najważniejsze, że VC nie nadaje się do realizowania moich celów. Szkoda bo uczę się na książce Sokół R. - "Microsoft Visual Studio 2012. Programowanie w C i C++" i tak było mi wygodnie. W tej sytuacji muszę znaleźć inną literaturę, ma ktoś jakieś pomysły?


    Wspomniane Atmel Studio to nic innego jak Visual Studio + dodatki Atmela ułatwiające życie w świecie mikrokontrolerów ARM i AVR.
    Oczywiście czyste VS też dostosujesz do współpracy z AVR, wystarczy tylko wskazać odpowiedni kompilator i skonfigurować ścieżki do bibliotek. Tylko po co to robić, skoro Atmel już to zrobił :)

    0
  • #15 24 Sie 2016 12:46
    mystix
    Poziom 4  

    Czyli skoro podoba mi się VS to AS jest dla mnie najlepszym rozwiązaniem tak?

    0
  • Pomocny post
    #16 24 Sie 2016 12:52
    tmf
    Moderator Mikrokontrolery Projektowanie

    mystix napisał:
    Czyli skoro podoba mi się VS to AS jest dla mnie najlepszym rozwiązaniem tak?


    Tak. AS=VS + dodatki.

    0