Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2664
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    198

Wszystko napisane przez Elvis

  1. Tani ARM - LPC1114 Wstęp W artykule chciałbym przedstawić rodzinę tanich mikrokontrolerów firmy NXP. Większość osób słyszało już o rdzeniu Cortex-M3. Jest to nowsza, pod wieloma względami udoskonalona wersja rdzenia ARM7TDMI. Znacznie mniej znana jest rodzina tanich mikrokontrolerów o rdzeniu Cortex-M0. Cortex-M0 zostały opracowane jako konkurencja dla obecnie stosowanych mikrokontrolerów 8-bitowych. Wobec podwyżki cen układów AVR warto zainteresować się nowym rdzeniem. Firma NXP jako jedna z pierwszych zaprezentowała mikrokontrolery z rdzeniem Cortex-M0. Są to mikrokontrolery oznac
  2. Zakłócenia możesz filtrować programowo. Po pierwsze dane polecenie lepiej wysyłać wielokrotnie. Po drugie wraz z poleceniem najlepiej wysłać sumę kontrolną - żeby "śmieci" nie były odbierane po stronie odbiornika. Wreszcie, jeśli to jakieś ważne dane, to możesz odsyłać potwierdzenie transmisji. Ogólnie odpowiedź jest: tak - można coś takiego zrobić. Ale żeby działało bezawaryjnie, to już nie jest tak bardzo prosto.
  3. Elvis

    [C] Wyliczanie hexów

    Typ bool też nie jest standardowy w C. Najprościej uzyskać 0/1 tak: sensor[4] = (PINA & 0x08) ? 1 : 0;
  4. Elvis

    [C] Wyliczanie hexów

    O ile wiem w C nie ma możliwości używania liczb binarnych (w czystym C). Można używać hexów, oczywiście dziesiętnych oraz ósemkowych. Jak chodzi o hex-y to kwestia wprawy. A mają niewątpliwą zaletę - spróbuj zapisać w kodzie binarnym np. maskę dla rejestru ARM-a, liczba jest 32-bitowa...
  5. Nie sprawdzałem przykładu na telefonie z ekranem dotykowym. Proponuję spróbować zamiast keyPressed, wykorzystać metodę: protected void pointerPressed(int x, int y) Dokumentacja jest tutaj: http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/lcdui/Canvas.html#pointerPressed%28int,%20int%29
  6. Elvis

    Tańszy zamiennik ATmegi

    Niestety C, ew. C++. Ale jeśli będzie zainteresowanie, to ja chętnie zmienię kurs LPC2114 na LPC1114
  7. Elvis

    Tańszy zamiennik ATmegi

    A ja polecam LPC1114 - ma całkiem spore możliwości, niezłą cenę (polecam kamami, tme ma strasznie drogo). Poza tym programator nie jest potrzebny. Do programowania wystarczy konwerter RS232<->UART.
  8. Elvis

    Tańszy zamiennik ATmegi

    ARM-y mają jedną przewagę nad AVR. Są produkowane przez wielu wytwórców. Więc jeśli np. NXP podwyższy ceny, to wszyscy zaczną używać STM, czy odwrotnie. W przypadku AVR producent ma pełną dowolność w dyktowaniu ceny.
  9. Elvis

    Atmega 32 USART

    Spróbuj zamienić na: ISR(USART_RXC_vect)
  10. Lekcja 11 - Komunikacja przez COM0, Bootloader Progam testowy Na początek zaprogramujmy płytkę programem przykładowym dostępnym w archiwum Program16.zip. Program bardzo niewiele różni się od poznanego w poprzedniej części. Główna różnica to wykorzystanie UART0 zamiast UART1 (czyli COM0 zamiast COM1). Program wysyła testowe komunikaty przez port COM0. Aby zobaczyć rezultat działania musimy wykorzystać program do odczytu z COM0. Jak poprzednio polecam program putty, ale wystarczy nawet hyperterminal spod windows. Niestety jeśli uruchomimy terminal, nie zobaczymy spodziewanego rezultatu.
  11. Elvis

    Ulubione dowcipy

    Dowcip matematyczny Def. Pochodną imprezy nazywamy ilość alkoholu jaką możemy kupić za butelki sprzedane po imprezie. Tw. Imprezę nazywamy nietrywialną wtedy i tylko wtedy gdy jej druga pochodna jest niezerowa.
  12. Nie, będzie jeszcze jedna część o RS232 oraz o przetworniku ADC.
  13. Elvis

    Cortex M3

    Jak już wymieniamy ciekawe mikrokontrolerki, to polecam zobaczyć Cortex-M0. Co prawda są słabsze od Cortex-M3, ale za to są bardzo tanie. Mogą być ciekawą alternatywą dla AVR. Do wgrywania można wykorzystać RS-232, albo kupić płytkę ewaluacyjną z przejściówką USB<->UART: http://www.kamami.pl/index.php?productID=137779 Najciekawsze są ceny samych procesorów. Najtaniej znalazłem w Kamami: http://www.kamami.pl/index.php?ukey=product&productID=136170 Procesor z 24KB Flash, 8KB RAM, zegarem 50MHz w cenie 6,65 zł (brutto przy 30szt)... Producent dostarcza gotowe środowisko do program
  14. W ustawieniach projektu trzeba odszukać opcję generowania dodatkowo pliku .hex. Ja mam wersję 1.x CrossStudio, tam było to w zakładce Linker, opcja "Additional Output Format"
  15. Elvis

    PDA w robotyce

    Zawsze możesz wykorzystać BT do komunikacji z palmtopem. Dajesz moduł btm-222 i masz komunikację jak po RS-232.
  16. Te procesorki mają niestety trochę niespodzianek. Trzeba jeszcze uważać na P0.14 i czytać erraty. Jak chodzi o podciąg, to nie polecam dawać małego rezystora. Wtedy przy wyłączonej diodzie będzie płynąć całkiem spory prąd. Może lepiej odwrócić logikę - diodą podłączyć katodą z procesorem, anodą (przez rezystor) z zasilaniem. Wtedy zerem będzie można zapalać diodę. Podciąg może być całkiem spory - np. 47k. Najlepiej byłoby dać tranzystor, który sterowałby diodą - przy najmniej procesor nie byłby obciążany prądem diody.
  17. Jak chodzi o P0.2 to niestety trzeba dokładnie czytać dokumentację - wyjścia I2C są open-colector. Też się kiedyś na to naciełem. Ale z pullupem działają poprawnie. Natomiast P0.30 działa poprawnie. Tylko jest jeszcze jedna sprawa. Na stronie 106 dokumentacji (UM10114.pdf) podane są domyślne ustawienia portów. I jak na złość P0.30 domyślnie jest jako ADC (AIN3 dokłądniej). Czyli trzeba dodać: PINSEL1 &= ~(_BV(28)|_BV(29)) albo: PINSEL1 = 0
  18. Dziwne, że nie działa kod: GPIO0_IOSET =_BV(2)|_BV(30); Natomiast aktualna wersja: GPIO0_IOSET = 0xffff;//_BV(2)|_BV(30); Nie ma prawa działać na P0.30 - powinno być: GPIO0_IOSET = 0xffffffff;//_BV(2)|_BV(30); [ Dodano: 16 Paź 10 09:21 ] Już wiem, czemu nie działa P0.2 W dokumentacji jest mała zmyłka, jak odsyłacz [1]. A w nim: Więc wyjście P0.2 wymaga pull-upa. Inaczej nie będzie działać.
  19. Aby sprawdzić, gdzie są przechowywane zmienne funkcje itd. najlepiej otworzyć plik z rozszerzeniem .map (znajduje się w katalogu z plikiem wynikowym). Przykładowo w program14.map znajdziemy fragment: Memory Configuration Name Origin Length Attributes ROM 0x00000000 0x0001e000 xr RAM 0x40000000 0x00004000 rw *default* 0x00000000 0xffffffff Tutaj zdefiniowana jest mapa pamięci naszego mikrokontrolera. Od adresu 0 mamy Flash, od 0x40000000 pamięć RAM. Dalej odnajdujemy adresy zmien
  20. Elvis

    Wyświetlacz

    Ja bym radził oprócz oceny "na oko" podłączyć miliamperomierz i sprawdzić ile mA pobiera podświetlenie. Na diodę powinno być 10-20mA. Więc wystarczy sprawdzić ile diod ma wyświetlacz, i można chociaż z grubsza prąd oszacować. Poza tym jak pisze Nawyk zacząć o rezystora, sprawdzić jak świeci i ile prądu bierze.
  21. Strasznie drogo w AVT... Poczekaj chwile, może Treker coś z Kamami załatwi. Jeśli nie, to może lepiej inną płytkę wybrać. Bo prawie 180 zł to nieporozumienie...
  22. Ja również bardzo dziękuję za oddane głosy. Gratuluję wszystkim laureatom.
  23. Poprzednia lekcja RS-232, c.d. - biblioteka standardowa W przypadku Bascom-a używanie RS-232 jest bajecznie proste. Polecenie „print” wysyła tekst, właściwie nic nie trzeba robić. W tej części spróbujemy uzyskać podobny efekt w języku C. Funkcja sprintf Najpierw przyjrzymy się funkcji „sprintf”. Należy ona do biblioteki standardowej C, więc jest dostępna na właściwie każdej platformie i kompilatorze. Aby ją wykorzystać wystarczy zaimportować plik stdio.h: #include <stdio.h> Funkcja sprintf jest bardzo podobna do znanej funkcji printf. Każdy kurs C zaczyna się wyświetleniem
  24. Elvis

    Atmega8 = Atmega48 ?

    Może warto zobaczyć ten dokument: http://www.atmel.com/dyn/resources/prod_documents/doc2553.pdf Atmel opisuje w nim różnice między atmega88 i atmega8. Na mój gust różnice są spore - inne adresy rejestrów, część ma pozmieniane nazwy. Poza tym inne jest napięcie referencyjne dla ADC. Trzeba więc pewnie program trochę pozmieniać.
  25. Timer + rs232 powinien wystarczyć. Przed wywołaniem funkcji uruchamiasz timer, po zakończeniu zatrzymujesz i wartość wysyłasz przez rs232.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.