Cześć, może nie mam dużego doświadczenia w programowaniu uC ale trochę w tym siedziałem.
Chciałbym się nauczyć programowania mikrokontrolerów w języku C++.
C++ i uC się nie łączą... Wszelkie mikroprocesory programuje się w języku C wraz ze zbiorem bibliotek dla danego urządzenia np C i ToolKit AVR do mikrokontrolerów AVR, lub biblioteki dla PIC'ów.
Co prawda istnieje kompilator C++ dla AVR ale nie obsługuje on 90% zalet C++ czyli, nie wspiera w pełni obiektówki, nie ma szablonów itd itd, i kod wynikowy jest dużo większy a to ma znaczenie szczególnie w mikrokontrolerach gdzie liczy się każdy bajt (pamięć takiego procesorka to np 8kB).
Wyjątkiem jest Arduino które działa w oparciu o mikrokontrolery AVR i wspiera obiektowy C++ ale nigdy nic nie robiłem w arduino więc nie wiem jak to jest dokładnie.
Czy programowanie mikrokontrolerów i programowanie na konsoli lub aplikacji okienkowych bardzo się różni od programowania uC
Programowanie uC prawie zawsze sprowadza się do grzebania w dokumentacji mikroprocesora by odnaleść nazwę i konfigurację odpowiedniego rejestru i jego zmianę. Czyli trochę mało ma to wspólnego z aplikacjami okienkowymi.
Np. Program dla AVR który co 1s będzie zmieniał stan diody podłączonej na pin 1 portu D może wyglądać np. tak:
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD |= (1 << 0); //pin 1 portu D - jako WYjście
PORTD &= ~(1 << 0); //pin 1 portu D - stan niski
while(1)
{
PORTD ^= (1 << 0); //pin 1 portu D - operacja XOR
_delay_ms(1000); //czekaj 1sec
}
return 0;
}
Jak widać, całość programu opiera się na przestawianiu rejestrów, ustawiłem DDRX, PORTX itd. Programowanie uC to 30% używania funkcji, 70% ustawiania rejestrów procesora i operowaniu na wnętrznościach (np timer 8bitowy)
Można oczywiście pisać pod Arduino gdzie to wszystko było by dużo ładniejsze i przyjemniejsze dla kodera ale jak już mówiłem, nie mam doświadczenia w tej platformie.
Jeśli chcesz wiedzieć coś więcej na ten temat, polecam:
http://mirekk36.blogspot.com/ - blog o programowaniu na AVR
https://www.youtube.com/user/mirekk36 - wersja wideo informacji z bloga
http://forum.atnel.pl/portal.php - możesz się ich spytać, napewno odpowiedzą ;)