Co prawda nie znajdziesz go w obudowie DIP tylko SMD, lecz SMD nie jest tak trudne w wykorzystaniu w "domowych" projektach.
Jeżeli nie możesz, nie potrafisz skonstruować projektu z użyciem SMD, zawsze możesz zakupić gotowy moduł na pokładzie z LPC 1114, np. takie jak:
Na początek nie potrzebujesz żadnego programatora, do programowania wykorzystasz interfejs RS-232 z odpowiednią transalacją poziomów logicznych do 3,3 V. Świetnie nadaje się układ MAX3232, a jeżeli nie posiadasz portu RS-232 tylko USB to układ FT232R lub podobny.
AVR'y mają trzy 8 bitowe rejestry służące do operacji na portach:
DDRx - rejestry kierunku
PORTx - rejestry wyjściowe
PINx - rejestry wejściowe
Podobnie jest w 32 bitowym LPC 1114:
LPC_GPIOx->DIR - rejestry kierunku
LPC_GPIOx->DATA - rejestry wyjściowe / wejściowe
Poniżej przykład w AVR ustawiający kierunek wyjścia pinu 1 portu A oraz ustawienie na nim stanu niskiego:
DDRA |= (1<<PA1); // kierunek pinu 1 portu PA na wyjściowy
PORTA &= ~(1<<PA1); // ustawienie stanu niskiego na pinie PA1
Analogicznie do w/w przykładu steruje się portami w LPC 1114:
LPC_GPIO0->DIR |= (1<<1); // kierunek pinu portu PORT0 na wyjściowy
LPC_GPIO0->DATA &|= ~(1<<1); // ustawienie stanu niskiego na pinie P0_1
Pora na przykład Witaj Świecie na LPC 1114, czyli mruganie diodą:
#include "LPC11xx.h" #define PIN_LED (1<<2) int main(void) { uint32_t i, j; LPC_GPIO0->DIR |= PIN_LED; // ustawienie pinu P0_2 na wyjsciowy while (1) { LPC_GPIO0->DATA |= PIN_LED; // stan wysoki na pinie P0_2 for ( i = 0; i < 1000000; i++); // realizacja opoznienia (taki niby delay :) j++; LPC_GPIO0->DATA &= ~PIN_LED; // stan niski na pinie P0_2 for ( i = 0; i < 1000000; i++); // realizacja opoznienia (taki niby delay :) j++; } }
Brak komentarzy:
Prześlij komentarz