Zacznij od wbudowanego C z ATmega32 (seria ATmega AVR)

9

Mam układ ATmega32 i myślę, że idealnie byłoby zacząć od mikrokontrolerów. Kiedyś trochę bełkotałem w osadzonym C (to znaczy, kiedy dostałem tę płytę), ale przepływ został zatrzymany z powodu niektórych rzeczy. Teraz mam dwa pytania:

  1. Jaki jest najlepszy darmowy zasób na początek z C dla serii AVR. Wiem o AVR-GCC, ale szukałem tutorialów lub darmowych książek na początek.

  2. Czy powinienem najpierw przejść bezpośrednio do C, czy najpierw przejść przez ASM? Widzę, że wokół jest wiele książek asm. Więc jaka jest lepsza opcja?

Podczas przeszukiwania Internetu znalazłem program ładujący Arduino dla ATmega32 tutaj http://retrointerfacing.com/?p=30, ale problem polega na tym, że waham się, czy majstrować przy bitach bezpiecznika. Czy to jest bezpieczne?

Rick_2047
źródło

Odpowiedzi:

6

Dokumentacja avr-libc jest doskonałym źródłem informacji dla C na AVR. Oto kolejny .

Osobiście wolę pracować w C. Korzystanie z avr-libc zapewnia dobrą przenośność kodu w rodzinie AVR. Jeśli jednak robisz coś o krytycznym czasie, być może będziesz musiał skorzystać z ASM.

Jeśli masz programator AVR równoległy lub „wysokiego napięcia” , zawsze możesz przeprogramować bity bezpiecznika. Jeśli używasz szeregowego (programowanie w systemie, ISP), uważaj, aby nie wyłączyć bitów SPIEN lub RESETENABLE, ponieważ uniemożliwi to przeprogramowanie.

Dostępna jest tarcza programująca Arduino HV .

Toby Jaffey
źródło
4

Zacznę od C. Być może od czasu do czasu potrzebujesz fragmentu ASM, ale w przypadku większości aplikacji o tym chodzi. Wyjątkiem byłby program ładujący, jeśli zdecydujesz się uruchomić własny.

Dave Mellis umieścił samouczek AVR na wiki MIT HLT. Omawia konfigurowanie narzędzi dla ATmega328, ale wydaje się wystarczająco ogólny, aby pomóc ci z różnymi urządzeniami. Widzieć

http://hlt.media.mit.edu/wiki/index.php/AVR_Programming

Biblioteki i przykłady na stronie Atmel wydają się być dobre. Użyłem wielu fragmentów z notatek aplikacji. Biblioteka I2C (TWI), której używam w kodzie RTC, pochodzi z witryny Atmel.

jluciani
źródło
3

Najpierw wybrałbym Arduino. Wiele książek, samouczków i przykładowego kodu. I wspaniała i miła społeczność. Jeśli znasz Arduino, wypróbuj C z AVR-GCC.

Obecnie nie mogę polecić ASM. Być może są jakieś zakątki, w których możesz użyć ASM, ale większość rzeczy można rozwiązać za pomocą zwykłego C. Dzięki ASM możesz dowiedzieć się bardzo szczegółowych informacji na temat działania mikrokontrolera, ale jeśli chcesz, aby rzeczy działały szybciej, trzymałbym się C lub C ++.

Tinkerlog
źródło
Problemem jest bardzo trudno uzyskać arduino, w którym mieszkam. Planuję zrobić taki dla siebie, ale to też nie działa (czytaj nie mam czasu).
Rick_2047
jeśli masz możliwość zaprogramowania układu, możesz załadować na nim oprogramowanie układowe Arduino, a następnie użyć łącza szeregowego + programu ładującego do dalszej pracy.
gallamine
0

Możesz zacząć od programowania C dla mikrokontrolerów Joe Pardue. Użyj AVRStudio5 i trzymaj się http://avrfreaks.net , możesz tu znaleźć wielu fajnych i pomocnych facetów.

Bishal Paudel
źródło