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?

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 .


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.


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 ++.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.