Ankieta: Jaki system operacyjnym preferujesz
Ankieta jest zamknięta.
Windows 60.78% 31 60.78%
Linux 31.37% 16 31.37%
MAC/OS 7.84% 4 7.84%
Inny 0% 0 0%
Razem 51 głosów 100%
*) odpowiedź wybrana przez Ciebie [Wyniki ankiety]

Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #3
RE: Programowanie ARM, nauka, środowiska programistyczne IDE
Nareszcie ktoś się za to wziął Smile
Inicjatywę popieram jak również słowa Adama o bibliotekach ... o tym żeby wcale ich nie używać lub w najmniejszym możliwym/koniecznym stopniu. Mam niewielkie doświadczenie w tym i chciałbym pociągnać dalej myśl Adama bo uważam że to najważniejszy aspekt całego przedsięwzięcia. Jaki program i na jakim systemie operacyjnym to będzie hulało to sprawa drugorzędna.
Sam używam bibliotek bo po prostu uczyłem się ze źródła wiedzy "skażonego" przez autora bibliotekami ( kupiłem kiedyś zestaw uruchomieniowy i książkę dedykowana do tego zestawu ... wraz ze spora kolekcją przykładów ).
Zauważyłem jednak to co Adam. Funkcje w bibliotekach są podobno po to żeby pomóc. Ale "rozkminiając" jak działają te funkcje to włos się jeży.
Ten sam skutek można osiągnąć na dwa sposoby:
1. poprzez zmianę wartości jednego rejestru ... czyli jedna linijka kodu w C lub ASM
lub
2. wypełnić/zmienić wartości w funkcji biblioteki zajmującej często po 5, 6, 7, nieraz więcej linijek i potem wywołać tę funkcję ... to dodatkowa linijka kodu.
Ciągle w tym co robię też mam "bibliotekowe kody" ale to co mnie najbardziej drażniło pozamieniałem już na ludzki kod.
O ile nic nie pokręciłem przedstawia sie to tak - jeden i drugi kod robi to samo (to ze starego przykładu i może być niewielka różnica ale nie o to chodzi tylko o to aby naświetlić wam jaka jest różnica w kodzie "bibliotecznym" i "normalnym" ).
przykład bibliotekowy :
Kod:
SPI_InitTypeDef   SPI_InitStructure;

  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                      //tryb pracy SPI
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;         //transmisja z wykorzystaniem jednej linii, transmisja jednokierunkowa
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                //16-bit ramka danych
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;                        //stan sygnalu taktujacego przy braku transmisji - niski
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;                      //aktywne zbocze sygnalu taktujacego - 1-sze zbocze
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                         //sprzetowa obsluga linii NSS (CS)
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;//prescaler szybkosci tansmisji  36MHz/256=140.625kHz
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;                //pierwszy bit w danych najbardziej znaczacy
  SPI_Init(SPI2, &SPI_InitStructure);                               //inicjalizacja SPI                              

  SPI_Cmd(SPI2, ENABLE);      // Wlacz SPI
przykład normalny
Kod:
SPI2->CR1  =  SPI_CR1_MSTR | SPI_CR1_BR_0 | SPI_CR1_SSM | SPI_CR1_SSI;
SPI2->CR1 |= SPI_CR1_SPE;
Tak więc jeśli "nauczyciel" poprowadzi Nas za ręke bez bibliotek to będzie mógł być dumny ze swoich wysiłków a my będziemy szczęśliwi że mamy ludzko przedstawiona wiedzę ... no i takiego nauczyciela oczywiscie Big Grin
Z niecierpliwością czekam na rozwój sytuacji.
(Ten post był ostatnio modyfikowany: 23-06-2016 22:42 przez SP4EJT.)
23-06-2016 21:59
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Programowanie ARM, nauka, środowiska programistyczne IDE - SP4EJT - 23-06-2016 21:59

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości