Skocz do zawartości

atMegaTona

Użytkownicy
  • Zawartość

    5
  • Rejestracja

  • Ostatnio

Reputacja

4 Neutralna

O atMegaTona

  • Ranga
    2/10

Informacje

  • Płeć
    Brak informacji
  • Języki programowania
    C, ASM

Ostatnio na profilu byli

63 wyświetleń profilu
  1. Dokładnie tak, dlatego do precyzyjnego odmierzania czasu należy korzystać z timerów i przerwań. W twoim programie czas wykonywania przerwania dodaje się do _delay_ms() i w rezultacie jedna dioda mruga wolniej. Proponuję też zajrzeć sobie do pliku *.lss po kompilacji i policzyć takty wykonywanych instrukcji w jednym i drugim przypadku wtedy będzie wszystko jasne zupełnie. Może okazać się również, że implementacja własnej wstawki asm będzie bardziej optymalnym rozwiązaniem niż kod wyprodukowany przez kompilator ale to kwestia wymagań dla konkretnego przypadku. Owocnej nauki.
  2. atMegaTona

    Zdalna komunikacja na odległość około 500 m

    Fale radiowe zachowują się nieco inaczej pod wodą niż w powietrzu i dochodzi do tego wiele innych czynników mających negatywny wpływ na komunikację ale skoro masz już robota to powinieneś już coś na ten temat wiedzieć. Najpewniejszy sposób to przewód, dla wymagań jakie podałeś chcąc realizować RC mogę zasugerować antenę kierunkową od strony operatora zanurzoną pod powierzchnię wody na głębokość powyżej 0.5l i tak samo kierunkową w robocie zakładając, że nie będzie przeszkód na drodze komunikacji. Dzięki temu wyeliminuje się część czynników o których wspominałem. Dobrze byłoby zastosować dłuższe fale niż te w popularnych modułach wifi.
  3. atMegaTona

    Wątek zbiorczy: powitania użytkowników

    Dziękuję
  4. atMegaTona

    L293D - co poszło nie tak?

    Gdzieś jest z całą pewnością zwarcie. - Czy po wykonaniu płytki sprawdzałeś ścieżki miernikiem czy nie ma zwarć (to się zdarza)? - Czy podzespoły są na pewno wlutowane w odpowiedni sposób? - Czy po wlutowaniu podzespołów sprawdzałeś miernikiem czy nie ma zwarć? - Czy zasilanie jest na pewno poprawnie podłączone? Niekiedy po rękodzielniczym wykonaniu PCB przy lutowaniu powstają mikrozwarcia trudne do zauważenia gołym okiem. Należy zawsze sprawdzać miernikiem czy nie ma zwarć przed lutowaniem i po aby mieć pewność poprawności wykonania. I jeszcze jedno. Być może to jest Twoją przyczyną generowania "magic smoke" przez arduino. Jeśli masz zwarte te swoje jumpery do 5V to z całą pewnością będzie zwarcie na pinie sterującym "enable" podczas stanu niskiego na tym pinie ponieważ popłynie przez niego pełny prąd zasilacza do masy. Nie ma sensu stosowanie tego jumpera do 5V. Na jedno wyjdzie jak ustawisz wypełnienie PWM na MAX i nie będzie możliwości zwarcia. Pozdrawiam Można też zastosować rezystory przy pinach arduino do sterowania zewnętrzną logiką. Nawet kiedy przez pomyłkę błędnie się podłączy piny zapobiegnie to zniszczeniu portu. Prawdopodobnie w Twoim arduino przepaliły się tylko tranzystory na pinach strujących "enable". Jest duża szansa na to, że reszta arduino będzie działać poprawnie.
  5. atMegaTona

    Wątek zbiorczy: powitania użytkowników

    Witam wszystkich bardzo serdecznie, zajmuję się głównie programowaniem niskopoziomowym. Często przeglądam fora tematyczne a do Forbota przyciągnęła mnie przyjazna atmosfera i spory zasób rzetelnych materiałów dot. avr i arduino. Pozdrawiam
×