• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w "czystym" C
#1
Witam wszystkich serdecznie!  Blush Z góry mówię, że nie jestem żadnym specjalistą w Arduino.
Spotkałem się z taką sytuacją na studiach, że profesor narzucił nam abyśmy programowali Arduino w "czystym C" (bez użycia jakichkolwiek bibliotek itp.). Pytanie w jaki sposób mogę się do tego zabrać? Dalej używając kompilatora Arduino? Macie jakieś wskazówki na temat jak mam zarządzać stanami na pinach?

Żeby zobrazować problem. Napisałem program, gdzie użyłem funkcji takich jak tone(), delay(), digitalWrite() i to według prowadzącego jest niezgodne z jego oczekiwaniami bo to nie jest "czyste" C i nie będę wiedział jak działa mikrokontroler. 

Będę niezmiernie wdzięczny za udzielenie wskazówek i poświęcenie choć chwili czasu.
 
Odpowiedź
#2
Bierzesz płytkę Arduino (czyli tylko sprzęt), instalujesz Atmel Studio, tworzysz program w C, wgrywasz i masz. Atmel Studio ma symulator, więc możesz popatrzeć co się dzieje w kodzie vs co w pamięci uC. Jak wolisz to możesz użyć Eclipse z wtyczką AVR, ale tu nie ma symulatora. Jak masz widzieć co się dzieje w uC to pewnie powinieneś mieć jakiś debugger, najtaniej to kupić jakąś płytkę z uC atmega328PB (ATMEGA328PB-XMINI EVALUATION BOARD, MICROCONTROLLER ) lub Atmega 328P xplained AVR (328P dawno nie widziałem), płytki z tej serii mają wbudowany programator/debugger. Tani programator/debugger to również MPlab SNAP, można go znaleźć za kilkadziesiąt zł.
W Arduino IDE też można napisać program w czystym C, otwierasz nowy szkic, kasujesz wszystko, robisz funkcję main i pętlę while(1) i jedziesz z programem, dodajesz biblioteki tylko C. Nie ma kompilatora Arduino, w przypadku użycia płytki AVR używany jest kompilator do AVR, jak używasz ESP to inny, a do ARM kolejny. Arduino łączy różne platformy, piszesz program w HAL, czyli nie przejmując się na jakim ostatecznie sprzęcie będzie uruchomiony (choć nie zawsze to się ostatecznie uda, jak np. szastasz pamięcią jak po ESP, a wybierzesz Attiny, lub użyjesz WIFI z ESP, którego nie ma w ARM i AVR).
 
Odpowiedź
#3
Zakładając, że chodzi o Arduino z AVR'em na pokładzie, to owszem Atmel Studio bije całą konkurencję na głowę.
Chociaż małe projekty zdarza mi się pisać nawet w CodeBlocks.
Pozostając przy AVR, to powinieneś ściągnąć sobie notę katalogową danego uC i tam masz wszystkie rejestry pięknie opisane. Często się zdarza, że oprogramowanie peryferiów jest łatwiejsze i szybsze pisząc bezpośredni do rejestrów niż korzystając z HAL Arduino.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości